You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Alexei f3345f6da5 Файл с лицензией 1 year ago
cms Реализовал доступ к ВК по опознаку (token) 2 years ago
conf изменил конфигурацию #42 2 years ago
crossposting_backend написал, как создать опознаки для вк(исправил ошибку в описании)+убрал лишние значения из promoter_env_keys и добавил VK_TOKEN #48 2 years ago
.env.example Группа одноклассников указывается в настройках #40 2 years ago
.gitignore Добавил favicon #42 2 years ago
LICENSE Файл с лицензией 1 year ago
Logo.png Файлы с логотипом 1 year ago
Logo.svg Файлы с логотипом 1 year ago
LogoWhite.png Файлы с логотипом 1 year ago
LogoWhiteSmall.png Маленький логотип для описания 1 year ago
README.md в README указал правильную ссылку для получения токена 2 years ago
manage.py Начальная фиксация 2 years ago
requirements.txt Обновил requirements.txt #27 2 years ago

README.md

Описание

Приложение для автопостинга содержимого со ссылкой в социальные сети. Приложение реализовано на 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='user@mail.pro', 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