5 changed files with 106 additions and 1 deletions
@ -0,0 +1,9 @@
|
||||
TELEGRAM_BOT_TOKEN=fdaTTdf |
||||
TELEGRAM_CHAT_ID=-1 |
||||
JOOMLA_TOKEN=c2ddd |
||||
VK_LOGIN=user@mail.pro |
||||
VK_PASSWORD=123123 |
||||
VK_OWNER_ID=-2 |
||||
OK_ACCESS_TOKEN=aatk |
||||
OK_APPLICATION_KEY=FFCF |
||||
OK_APPLICATION_SECRET_KEY=GGD |
@ -0,0 +1,54 @@
|
||||
# Описание |
||||
|
||||
Приложение для автопостинга содержимого со ссылкой в социальные сети. |
||||
Приложение реализовано на Django 4.1. |
||||
На данный момент реализован автопостинг в ВКонтакте, Одноклассники и телеграм. |
||||
Автопостинг на уровне архитектуры реализован с помощью класса "Маркетолог" cms.promoters.Marketer. |
||||
Маркетолог передаёт продвигателям (promoters) статью для продвижения. |
||||
|
||||
# Настраиваем доступ к социальным сетям |
||||
|
||||
## Настраиваем доступ к одноклассникам |
||||
|
||||
1. Создаём [приложение](https://apiok.ru/dev/app/create) |
||||
2. Следуем инструкциям по ссылке выше. |
||||
3. Создаём приложение. |
||||
4. Выбираем тип приложения "Пользовательское". |
||||
5. Ставим галочку "Пользовательское" |
||||
6. Заполняем описание. |
||||
7. Нажимаем "Добавить платформу". |
||||
8. Выбираем OAuth. |
||||
9. В списке разрешённых redirect_uri указываем https://zakonvremeni.ru |
||||
10. Ставим галочку "Разрешить клиентскую OAuth авторизацию". |
||||
11. Выставляем права: |
||||
* Доступ к личной информации через OAuth (VALUABLE_ACCESS): Опционально |
||||
* Получение длинных токенов OAuth (LONG_ACCESS_TOKEN): Опционально |
||||
* Установка статуса (SET_STATUS): Не используется |
||||
* Изменение фотографий и фотоальбомов (PHOTO_CONTENT): Не используется |
||||
* Управление группами (GROUP_CONTENT): Обязательно |
||||
11. Нажмите "Сохранить". |
||||
12. Вам на почту придут ключи. |
||||
13. Нажмите на кнопку "Получить новый" рядом с надписью "Вечный access_token". |
||||
14. Скопируйте значение "Вечный access_token" в .env-файл в корне вашего приложения, в качестве значения OK_ACCESS_TOKEN: |
||||
15. Вставьте их в .env-файл в корне вашего приложения: |
||||
* Публичный ключ приложения - в качестве значения OK_APPLICATION_KEY |
||||
* Секретный ключ приложения - в качестве значения OK_APPLICATION_SECRET_KEY |
||||
|
||||
|
||||
## Настраиваем доступ к телеграм |
||||
|
||||
1. Создайте бота с помощью @BotFather в телеграм. |
||||
2. Скопируйте опознак (token). |
||||
3. Вставьте токен в .env-файл вашего проекта, в качестве значения переменной TELEGRAM_BOT_TOKEN. |
||||
4. Добавьте бота в админы группы |
||||
5. Добавьте несколько тестовых сообщений в группу |
||||
6. Запустите команду: |
||||
``` |
||||
python manage.py get_telegram_group_id |
||||
``` |
||||
6. В результате будет выведен ид канала |
||||
7. Вставьте полученный ид в .env-файл, переменная TELEGRAM_CHAT_ID |
||||
|
||||
### Возможные ошибки |
||||
7. Если будет ошибка, что "Нет обновлений", значит, нужно прислать больше сообщений в группу и быстрее запустить команду. |
||||
Возможно бот успевает прочитать обновления до вас |
@ -0,0 +1,24 @@
|
||||
import requests |
||||
from django.core.management import BaseCommand |
||||
|
||||
from crossposting_backend.settings import promoter_secrets |
||||
|
||||
|
||||
class Command(BaseCommand): |
||||
|
||||
def handle(self, *args, **options): |
||||
bot_token = promoter_secrets['TELEGRAM_BOT_TOKEN'] |
||||
get_updates_url = f'https://api.telegram.org/bot{bot_token}/getUpdates' |
||||
response = requests.get(get_updates_url) |
||||
if response.ok: |
||||
json_body = response.json() |
||||
if json_body['ok']: |
||||
if 'result' in json_body and len(json_body['result']) > 0: |
||||
print(json_body['result'][0]['channel_post']['sender_chat']['id']) |
||||
else: |
||||
print('Нет обновлений') |
||||
else: |
||||
print(json_body['error_code']) |
||||
else: |
||||
print(response.status_code) |
||||
return 0 |
Loading…
Reference in new issue