|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
# Описание |
|
|
|
|
|
|
|
|
|
Приложение для автопостинга содержимого со ссылкой в социальные сети. |
|
|
|
|
Приложение для автопостинга содержимого со ссылкой в социальные сети. |
|
|
|
|
Приложение реализовано на Django 4.1. |
|
|
|
|
На данный момент реализован автопостинг в ВКонтакте, Одноклассники и телеграм. |
|
|
|
|
Автопостинг на уровне архитектуры реализован с помощью класса "Маркетолог" cms.promoters.Marketer. |
|
|
|
@ -16,30 +16,36 @@
|
|
|
|
|
4. Выбираем тип приложения "Пользовательское". |
|
|
|
|
5. Ставим галочку "Пользовательское" |
|
|
|
|
6. Заполняем описание. |
|
|
|
|
7. Нажимаем "Добавить платформу". |
|
|
|
|
7. Нажимаем "Добавить платформу". |
|
|
|
|
8. Выбираем OAuth. |
|
|
|
|
9. В списке разрешённых redirect_uri указываем URL вашего сайта, откуда будете производить кросспостинг, |
|
|
|
|
например, https://mirocod.ru |
|
|
|
|
9. В списке разрешённых redirect_uri указываем URL вашего сайта, откуда будете производить кросспостинг, |
|
|
|
|
например, https://mirocod.ru |
|
|
|
|
10. Ставим галочку "Разрешить клиентскую OAuth авторизацию". |
|
|
|
|
11. Выставляем права: |
|
|
|
|
|
|
|
|
|
* Доступ к личной информации через OAuth (VALUABLE_ACCESS): Опционально |
|
|
|
|
* Получение длинных токенов OAuth (LONG_ACCESS_TOKEN): Опционально |
|
|
|
|
* Установка статуса (SET_STATUS): Не используется |
|
|
|
|
* Изменение фотографий и фотоальбомов (PHOTO_CONTENT): Не используется |
|
|
|
|
* Управление группами (GROUP_CONTENT): Обязательно |
|
|
|
|
|
|
|
|
|
11. Нажмите "Сохранить". |
|
|
|
|
12. Вам на почту придут ключи. |
|
|
|
|
12. Вам на почту придут ключи. |
|
|
|
|
13. Нажмите на кнопку "Получить новый" рядом с надписью "Вечный access_token". |
|
|
|
|
14. Скопируйте значение "Вечный access_token" в .env-файл в корне вашего приложения, в качестве значения OK_ACCESS_TOKEN: |
|
|
|
|
15. Вставьте их в .env-файл в корне вашего приложения: |
|
|
|
|
|
|
|
|
|
* Публичный ключ приложения - в качестве значения OK_APPLICATION_KEY |
|
|
|
|
* Секретный ключ приложения - в качестве значения OK_APPLICATION_SECRET_KEY |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Настраиваем доступ к ВКонтакте |
|
|
|
|
1. Укажите логин, ваш email, под которым вы авторизуетесь в ВК, в качестве значения VK_LOGIN |
|
|
|
|
2. Укажите пароль, в качестве значения VK_PASSWORD |
|
|
|
|
3. Укажите ид группы, добавьте к нему минус в начале. Т.е. если № группы 7002, то нужно указать -7002, в качестве значения VK_OWNER_ID |
|
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
## Настраиваем доступ к телеграм |
|
|
|
|
|
|
|
|
@ -50,64 +56,80 @@
|
|
|
|
|
5. Добавьте бота в админы группы |
|
|
|
|
6. Добавьте несколько тестовых сообщений в группу |
|
|
|
|
7. Запустите команду: |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
python3.8 manage.py get_telegram_group_id |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
6. В результате будет выведен ид канала |
|
|
|
|
7. Вставьте полученный ид в .env-файл, переменная TELEGRAM_CHAT_ID |
|
|
|
|
|
|
|
|
|
### Возможные ошибки |
|
|
|
|
7. Если будет ошибка, что "Нет обновлений", значит, нужно прислать больше сообщений в группу и быстрее запустить команду. |
|
|
|
|
Возможно бот успевает прочитать обновления до вас. |
|
|
|
|
|
|
|
|
|
7. Если будет ошибка, что "Нет обновлений", значит, нужно прислать больше сообщений в группу и быстрее запустить команду. |
|
|
|
|
Возможно бот успевает прочитать обновления до вас. |
|
|
|
|
|
|
|
|
|
# Задаём доступ к веб-интерфейсу |
|
|
|
|
|
|
|
|
|
1. Зайдите по ssh на хостинг. |
|
|
|
|
2. Зайдите по root. |
|
|
|
|
3. Активируйте виртуальное окружение: |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
source /home/crossposting_env/bin/activate |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
4. Перейдите в папку проекта: |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
cd /var/www/crossposting/backend/current/ |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
5. Запустите консоль django: |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
python3.8 manage.py shell |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
1. Выполните команду на python: |
|
|
|
|
|
|
|
|
|
```python |
|
|
|
|
from django.contrib.auth.models import User |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
2. Создайте пользователя, под которым будете авторизоваться. Укажите своё имя пользователя, электропочту и пароль: |
|
|
|
|
|
|
|
|
|
```python |
|
|
|
|
user = User.objects.create_user(username='user', email='user@mail.pro', password='123123123') |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
3. Выйти из консоли: |
|
|
|
|
|
|
|
|
|
```python |
|
|
|
|
quit() |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
# Шифруем .env-файл |
|
|
|
|
|
|
|
|
|
1. По умолчанию настройка шифрования в crossposting_backend/private/settings.py ENV_ENCODED равна False. Это означает, |
|
|
|
|
что .env-файл не шифрован. |
|
|
|
|
1. По умолчанию настройка шифрования в crossposting_backend/private/settings.py ENV_ENCODED равна False. Это означает, |
|
|
|
|
что .env-файл не шифрован. |
|
|
|
|
2. Если нужно повысить защищённость данных, то шифруем .env-файл. |
|
|
|
|
3. Если у вас уже зашифрован .env-файл, то на всякий случай создайте резервную копию этого файла. |
|
|
|
|
3. Если у вас уже зашифрован .env-файл, то на всякий случай создайте резервную копию этого файла. |
|
|
|
|
4. Далее создайте .env-файл и укажите незашифрованные доступы к социальным сетям. |
|
|
|
|
5. В crossposting_backend/private/settings.py значение ENV_ENCODED д.б. False. |
|
|
|
|
6. Перезапустите веб-приложение: |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
supervisorctl restart crossposting_django |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
7. Выполните команду для шифровки: |
|
|
|
|
python3.8 manage.py encode_file |
|
|
|
|
python3.8 manage.py encode_file |
|
|
|
|
8. В результате будет создан файл .env.encoded |
|
|
|
|
9. Замените .env созданным файлом .env.encoded |
|
|
|
|
10. В crossposting_backend/private/settings.py значение ENV_ENCODED замените на True. |
|
|
|
|
11. Перезапустите веб-приложение: |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
supervisorctl restart crossposting_django |
|
|
|
|
``` |
|
|
|
|