Как установить чат бот в инстаграм с компьютера
Чат-бот — это автоматизированный многофункциональный помощник, который может показывать информацию подписчикам, собирать информацию по запросу, оформлять заказы согласно заранее подготовленным сценариям.
Следуйте пошаговой инструкции, чтобы создать своего первого чат-бота для Instagram.
Содержание
Подготовка к работе
Для подключения чат-бота к вашему Instagram профилю у вас должны быть:
Это развернутый чек-лист всего необходимого для подключения чат-бота. Краткое описание шагов вы также найдете на странице подключения бота.
Шаг 1. Свяжите страницу в Facebook с бизнес-аккаунтом в Instagram
Вы можете связать социальные сети и предоставить необходимые разрешения для Facebook в настройках страницы Facebook или в настройках бизнес-аккаунта в Instagram. Выберите один из более удобных способов.
Если у вас уже связаны социальные сети, пропустите первый шаг и переходите ко второму, проверьте только предоставленные разрешения и тип Instagram аккаунта.
Способ 1: Подключить Instagram через Facebook
Откройте страницу вашей компании в Facebook и в панели управления страницей нажмите «Настройки»
Во вкладке «Instagram» нажмите «Подключить аккаунт».
Обратите внимание, что настройки подключения доступны только пользователю с правами администратора на страницу компании в Facebook
Войдите в вашу учетную запись Instagram.
После успешного входа вам отобразится информация о добавленном Instagram аккаунте.
Если аккаунт в Instagram, который вы подключили, еще не бизнес-аккаунт, вам будет предложено сменить тип аккаунта. Нажмите «Перейти» и следуйте подсказкам мастера настроек.
Чтобы убрать связь между аккаунтами, внизу страницы в настройках отключения Instagram нажмите «Отсоединить».
Способ 2: Подключить Facebook через Instagram
Подключить Facebook к странице в Instagram вы можете при переключении типа Instagram на бизнес-аккаунт или же отдельно в настройках.
Если у вас тип аккаунта «Личный», откройте меню ☰ в левом верхнем углу, перейдите в «Настройки» > «Аккаунт», нажмите «Переключить на профессиональный» и выберите тип аккаунта «Бизнес». Instagram в процессе настройки аккаунта может предложить вам сразу подключить страницу компании в Facebook.
Далее выберите «Войти на Facebook». Войдите в личную страницу Facebook, ознакомьтесь с разрешениями, которые предоставляете и выберите страницу компании в Facebook.
Обратите внимание, если у вас на телефоне установлено приложение Facebook или вы уже подключали Facebook через «Центр аккаунтов», Instagram автоматически подтянет информацию и предложит вам выбрать страницы из профиля, в который вы вошли.
Выберите опцию «Связать с существующей страницей». Войдите в свою учетную запись в Facebook, затем выберите нужную страницу из подгруженных, и нажмите «Готово».
Шаг 2. Подключите бота в SendPulse
Перейдите в раздел «Чат-боты» в вашем аккаунте SendPulse. Если ранее у вас не было подключенных каналов, нажмите на кнопку «Подключить каналы». Если вы уже подключали ботов, перейдите в раздел «Управление ботами».
Затем выберите нужный канал и нажмите на кнопку «Подключить Instagram».
Проверьте пункты за списком чек-листа, отметьте галочкой «Я выполнил предыдущие пункты» и нажмите «Продолжить через Facebook».
Войдите в Facebook аккаунт, который связан с вашим Instagram бизнес-аккаунтом.
Обратите внимание, что пользователь, которого вы подключаете, должен иметь административные права на подключаемые страницы компании в Facebook для корректной работы бота.
Если вы будете повторно подключать бота, в мастере настройки нажмите «Изменить настройки», чтобы выбрать Facebook страницу компании для подключения.
Выберите бизнес-аккаунт Instagram, для которого хотите создать бота. Вы можете отметить несколько аккаунтов сразу, если нужно создать разных ботов.
Выберите связанную страницу компании в Facebook.
Обратите внимание: если у вас несколько страниц компании в Facebook, убедитесь, что вы выбрали нужную Facebook страницу, которая связана с аккаунтом в Instagram, для которого вы хотите подключить бота.
Предоставьте приложению SendPulse разрешения и нажмите «Готово». Для корректности подключения и работы бота выберите все пункты.
Почти все готово. После успешного выполнения предыдущих действий будет создан бот для Instagram. Остается только провести первоначальную настройку.
Шаг 3. Добавьте владельца в созданный бот
Чтобы протестировать свой чат-бот в Instagram, необходимо добавить владельца.
Залогиньтесь в свой личный Instagram аккаунт, который вы хотите сделать владельцем бота и отсканируйте QR код или перейдите по ссылке на ваш бизнес-аккаунт в Instagram.
При верном подключении вы получите приветственную цепочку, а в аудитории бота к вашему контакту добавится надпись «Владелец».
Недавно мы с девушкой серьезно поговорили и выяснилось, что я даже не пишу ей “С добрым утром” и вообще редко пишу по утрам. В целом, причина кроется в том, что я не просыпаюсь с восходом первых лучей солнца (как она), а переписываться не очень люблю. Ну а ей, конечно же, приятно получать нежности по утрам и все такое.
Так как общаемся мы исключительно в Instagram, я подумал, что неплохо бы совместить все это и автоматизировать процесс. Тем более что у соцсети вроде как есть открытый API.
Как оказалось, полноценного официального API там нет, а тот что есть – поддерживает только бизнес-аккаунты. Но так или иначе - попробовать хотелось.
Полный код и README на Github, а ниже - ключевые моменты.
Схема скрипта
Для организации кода и какой-никакой возможности расширения функционала в будущем, скрипт разбился на 3 класса:
Login – отвечает за авторизацию и создает сессию;
Структура директории
Класс Login - авторизация
Посмотрим как работает авторизация Instagram. Для этого смотрим исходящие запросы прям в инструментах браузера:
Параметр "10" - обозначает пароль в зашифрованном виде, далее - время и сам пароль. Делать свой шифровальщик я, конечно же, не буду, но есть и другой способ залогиниться с паролем в чистом виде. Для передачи обычной строки достаточно заменить "10" на "0":
Для хранения данных авторизации используется файл – auth.txt. Знаю, что лучше хранить это все в зашифрованном виде, но так как данные находится только на сервере – это относительно безопасно.
Конструкция auth.txt выглядит так:
Просто текст. Каждый параметр должен быть записан с новой строки. Читаем из файла:
Теперь авторизуемся, используя requests :
Отправляем POST-запрос с полученными данными:
Полный ответ должен выглядеть как-то так:
Успешный ответ попытки авторизации
Ищем csrf-токен вручную
Если меняется IP, агент, пароль и, наверняка, какие-то другие параметры клиента – Инстаграм начинает требовать подтверждение политики использования cookie. Соответственно, куки нет, токена нет и нормальный POST-запрос невозможен.
Если посмотреть текстовое представление ответа на первый GET-запрос по адресу /accounts/login/– можно найти токен в форме авторизации.
csrf-токен в ответе. 19 г. до н. э.
Для поиска сделаем простую регулярку, которая не будут работать только с этим ответом:
Как правило, это срабатывает только для первой попытки, после изменения параметров. Почему-то после авторизации куки начинают выдаваться как обычно. НО, важно следить за значением токена – после успешного запроса он сменится в cookie и, хорошо бы его перезаписать.
Обработка словаря и псевдорандомный выбор
Для определения дня недели можно использовать datetime.today().weekday() :
Сама сортировка выглядит ужасно примерно так:
Теперь добавим главную функцию, которая возвращает непосредственно выбранную строку:
Поскольку Instagram сам экранирует символы и конвертирует любой тип в str – нет нужды принудительно приводить их вручную.
Тестовый запуск select_str() :
В классе SendMsg – Login и MessageMaker. А также добавим в конструктор инициализацию родительских классов:
Логинимся и создаем сессию:
Если функция вернула success в словаре, значит, можно продолжать:
Определяем набор параметров для отправки POST запроса:
Позже добавлю функция проверки X-IG-App-ID. Так как он возвращается в заголовках после успешной авторизации. Не сложно сверить значения и обновить, если требуется.
И отправляем запрос:
Еще желательно определить простейшую функцию логирования, чисто для упрощения отладки. Так как скрипт срабатывает на сервере – хорошо записывать все что происходит:
Запускаем и смотрим лог:
Менеджер запуска
Для удобства запуска, создадим менеджер скрипта – insta_bot_manager.py и поместим его в папку рядом с insta_bot.py.
Разместим функцию-обработчик и импортируем написанный модуль:
А также проверку существования файла auth.txt. Потому что запускать это все без данных авторизации не имеет смысла:
Теперь если auth.txt по каким-то причинам отсутствует - будет поднято исключение.
Автоматизация процесса в Cron
Поскольку я не хотел добавлять insta_bot_manager.py шебанги bash, то решил просто сделать еще один launcher специально для Cron.
В папке со скриптом создаем файл launcher:
$ touch launcher && nano launcher
Добавим что-то такое:
Получается, перед непосредственным запуском скрипт засыпает на рандомное время до 70 минут.
Вообще, при добавлении в cron стоит проследить за переменными окружения. В частности - PWD. Я получал ошибки из-за различия домашней директории и папки со скриптом. Для ее устранения можно приколхозить, в качестве первой, команду cd с полным путем к папке.
Выводы
Пример работы
Читайте также: