Skip to content

Horston/CrossPosting

 
 

Repository files navigation

Описание

Приложение для автопостинга содержимого со ссылкой в социальные сети. Приложение реализовано на Django 4.1. На данный момент реализован автопостинг в ВКонтакте, Одноклассники и телеграм. Автопостинг на уровне архитектуры реализован с помощью класса "Маркетолог" cms.promoters.Marketer. Маркетолог передаёт продвигателям (promoters) статью для продвижения.

Настраиваем доступ к социальным сетям

Настраиваем доступ к одноклассникам

  1. Создаём приложение
  2. Следуем инструкциям по ссылке выше.
  3. Создаём приложение.
  4. Выбираем тип приложения "Пользовательское".
  5. Ставим галочку "Пользовательское"
  6. Заполняем описание.
  7. Нажимаем "Добавить платформу".
  8. Выбираем OAuth.
  9. В списке разрешённых redirect_uri указываем URL вашего сайта, откуда будете производить кросспостинг, например, https://mirocod.ru
  10. Ставим галочку "Разрешить клиентскую OAuth авторизацию".
  11. Выставляем права:
  • Доступ к личной информации через OAuth (VALUABLE_ACCESS): Опционально
  • Получение длинных токенов OAuth (LONG_ACCESS_TOKEN): Опционально
  • Установка статуса (SET_STATUS): Не используется
  • Изменение фотографий и фотоальбомов (PHOTO_CONTENT): Не используется
  • Управление группами (GROUP_CONTENT): Обязательно
  1. Нажмите "Сохранить".
  2. Вам на почту придут ключи.
  3. Нажмите на кнопку "Получить новый" рядом с надписью "Вечный access_token".
  4. Скопируйте значение "Вечный access_token" в .env-файл в корне вашего приложения, в качестве значения OK_ACCESS_TOKEN:
  5. Вставьте их в .env-файл в корне вашего приложения:
  • Публичный ключ приложения - в качестве значения OK_APPLICATION_KEY
  • Секретный ключ приложения - в качестве значения OK_APPLICATION_SECRET_KEY

Настраиваем доступ к ВКонтакте

  1. Создайте приложение в ВК (standalone). Укажите в приложении сообщество
  2. Скопируйте ссылку ниже, укажите ID приложения.Вставьте ссылку в адресную строку браузере, нажмите Enter https://oauth.vk.com/authorize?client_id=ID-приложения&scope=wall,offline&redirect_uri=https://oauth.vk.com/blank.html&display=page&response_type=token&revoke=1
  3. После этого в вашей адресной строке появится необходимый ключ. Он копируется вручную: после access_token= и перед &expires_in.
  4. Укажите токен, в качестве значения VK_TOKIN
  5. Укажите id сообщества со знаком «-», в качестве значения VK_OWNER_ID

Настраиваем доступ к телеграм

  1. Создайте бота с помощью @BotFather в телеграм. Для этого укажите команду /newbot и нажмите Enter.
  2. Следуйте инструкциям.
  3. В конце BotFather выдаст вам опознак (token).
  4. Вставьте опознак в .env-файл вашего проекта, в качестве значения переменной TELEGRAM_BOT_TOKEN.
  5. Добавьте бота в админы группы
  6. Добавьте несколько тестовых сообщений в группу
  7. Запустите команду:
python3.8 manage.py get_telegram_group_id
  1. В результате будет выведен ид канала
  2. Вставьте полученный ид в .env-файл, переменная TELEGRAM_CHAT_ID

Возможные ошибки

  1. Если будет ошибка, что "Нет обновлений", значит, нужно прислать больше сообщений в группу и быстрее запустить команду. Возможно бот успевает прочитать обновления до вас.

Задаём доступ к веб-интерфейсу

  1. Зайдите по ssh на хостинг.
  2. Зайдите по root.
  3. Активируйте виртуальное окружение:
source /home/crossposting_env/bin/activate
  1. Перейдите в папку проекта:
cd /var/www/crossposting/backend/current/
  1. Запустите консоль django:
python3.8 manage.py shell
  1. Выполните команду на python:
from django.contrib.auth.models import User
  1. Создайте пользователя, под которым будете авторизоваться. Укажите своё имя пользователя, электропочту и пароль:
user = User.objects.create_user(username='user', email='[email protected]', password='123123123')
  1. Выйти из консоли:
quit()

Шифруем .env-файл

  1. По умолчанию настройка шифрования в crossposting_backend/private/settings.py ENV_ENCODED равна False. Это означает, что .env-файл не шифрован.
  2. Если нужно повысить защищённость данных, то шифруем .env-файл.
  3. Если у вас уже зашифрован .env-файл, то на всякий случай создайте резервную копию этого файла.
  4. Далее создайте .env-файл и укажите незашифрованные доступы к социальным сетям.
  5. В crossposting_backend/private/settings.py значение ENV_ENCODED д.б. False.
  6. Перезапустите веб-приложение:
supervisorctl restart crossposting_django
  1. Выполните команду для шифровки: python3.8 manage.py encode_file
  2. В результате будет создан файл .env.encoded
  3. Замените .env созданным файлом .env.encoded
  4. В crossposting_backend/private/settings.py значение ENV_ENCODED замените на True.
  5. Перезапустите веб-приложение:
supervisorctl restart crossposting_django

Releases

No releases published

Packages

No packages published

Languages

  • Python 80.2%
  • HTML 17.2%
  • Shell 2.6%