Как установить чат бот в инстаграм с компьютера

Обновлено: 28.06.2024

Чат-бот — это автоматизированный многофункциональный помощник, который может показывать информацию подписчикам, собирать информацию по запросу, оформлять заказы согласно заранее подготовленным сценариям.

Следуйте пошаговой инструкции, чтобы создать своего первого чат-бота для 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 г. до н. э.

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 с полным путем к папке.

Выводы

Пример работы

Пример работы

Читайте также: