Используйте Python и Zapier, чтобы создать бота для Твиттера, который ежечасно твитнет анекдот
В этой статье мы будем создавать этого твиттер-бота.
Zapier - это инструмент, который позволяет автоматизировать задачи и создавать рабочие процессы путем интеграции различных приложений. Вот несколько вещей, которые вы можете делать с помощью Zapier:
- Сделайте трекер цен, который уведомляет вас, когда цена ниже X долларов.
- Получайте оповещение в Slack / Discord, когда вы получаете письмо с определенным идентификатором электронной почты.
- Твитнуть обновление всякий раз, когда обновляется какой-либо RSS-канал.
- И многое другое.
Для большинства из них вам не нужно писать код на Python или JavaScript. Встроенных приложений Zapier более чем достаточно. Однако при желании вы также можете выполнять небольшие скрипты Python. В этом руководстве мы будем работать с Python и Zapier.
Прежде чем продолжить, давайте обсудим некоторые ограничения поддержки Python Zapier:
- В бесплатной версии мы можем запускать только короткие скрипты, выполнение которых занимает ‹1 с.
- Мы не можем устанавливать внешние модули. Доступны только следующие внешние модули:
requests
: простой в использовании HTTP-клиентStoreClient
: Встроенная утилита для хранения и извлечения данных между запусками Zap
Что мы будем строить?
Мы создадим Twitter-бота, который будет получать случайную шутку, используя официальный Joke API. Мы также добавим функцию, которая позволяет пользователю указывать список хэштегов для включения в каждый твит.
Бот будет писать анекдот вместе с хэштегами ежечасно.
Шаги по созданию бота
1. Скрипт Python для запроса к API.
Мы воспользуемся библиотекой запросов и сделаем GET-запрос к Joke API. Ниже приведен фрагмент кода для запроса:
Шутки имеют форму вопросов и ответов, поэтому нам нужно будет отформатировать текст, прежде чем размещать его в Твиттере. Нам также нужно будет добавить хэштеги в конце.
- Мы создадим пустой список для хранения вопроса, ответа, хэштегов и некоторых символов точек.
- Метод
join()
будет использоваться для создания финального твита. - Перед использованием хэштегов нам нужно добавить символ решетки и создать строку со всеми хэштегами.
Ниже приведен образец твита:
Теперь, когда мы закончили твит, мы можем перейти к следующему шагу.
2. Настройте учетную запись Zapier и создайте Zap
Приложения, созданные в Zapier, известны как Zaps.
- Зайдите на сайт Zapier и зарегистрируйтесь бесплатно.
- После регистрации войдите в свою учетную запись.
- Нажмите «Сделать зап» на левой боковой панели.
3. Настройте триггер.
Каждый Zap требует триггера. Триггер - это в основном событие, запускающее Zap. Некоторые возможные триггеры:
- Получение электронного письма
- Получение PR на GitHub
- RSS-канал обновляется
- Получение сообщения в Slack
- Получение заказа на WooCommerce
- График (например, ежечасно, ежедневно, еженедельно, ежемесячно)
Поскольку мы хотим твитнуть ежедневно, мы выберем триггер «Расписание» и выберем «Ежедневно». Это первый элемент в правом столбце:
- Для параметра «Запуск события» выберите «Каждый час» и нажмите «Продолжить».
- Затем вы можете выбрать, хотите ли вы запускать триггер по выходным.
- После того, как вы нажмете «Продолжить», ваш триггер должен быть создан.
- Вы можете нажать «Test Trigger», чтобы запустить триггер.
Вы должны увидеть сообщение выше, если ваш триггер сработал успешно.
4. Добавление скрипта Python.
- Нажмите кнопку «+» или кнопку «Добавить действие»:
- Найдите «код» и выберите «Код от Zapier». На скриншоте это первый элемент в результатах поиска.
- Для параметра «Событие действия» выберите «Запустить Python».
Чтобы ввести данные, нажмите кнопку «+» в разделе «Входные данные». Чтобы получить доступ к входам, нам просто нужно получить доступ к input_data
словарю. Все значения хранятся в виде строк (т.е. значение ключевых хэштегов фактически сохраняется как строка, а не список).
Чтобы преобразовать их в список, мы можем использовать функцию eval()
. То же самое и со словарными значениями.
- Нажмите «Продолжить», а затем «Проверить и просмотреть». Это запустит код.
Теперь мы можем скопировать скрипт Python, который мы создали ранее, с некоторыми изменениями:
Вывод или данные, которые должны быть возвращены, должны храниться в словаре с именем output
.
Не забывайте нажимать «Test and Review» или «Retest Action» каждый раз, когда вы хотите запустить свой код. Ниже представлен результат выполнения скрипта:
Как видите, отображается твит. Этот выходной словарь будет использован в следующем действии, которым является «приложение Twitter», чтобы написать шутку в Твиттере.
5. Добавьте приложение Twitter.
Нажмите кнопку «+» и добавьте новое действие:
Найдите «Twitter» и выберите приложение Twitter.
Для «Событие действия» выберите «Создать твит»:
Вам нужно будет подключить свою учетную запись Twitter и авторизовать Zapier.
После авторизации Zapier вы должны увидеть следующий экран:
Выберите «Запустить Python», а затем - «Твитнуть». Это переменная твита, которую мы создали в нашем скрипте Python.
Когда вы закончите, нажмите «Продолжить» и проверьте действие:
Если ваш тест прошел успешно, ваша учетная запись Twitter должна была содержать шутку в Твиттере.
Теперь вы можете нажать «Включить Zap», и ваш Zap должен запуститься.
Заключение
Поздравляю! Ваш Zap запущен, и ваша учетная запись Twitter будет ежечасно отправлять шутку в Твиттере.
Еще кое-что, что вы можете сделать:
- Вместо использования API используйте RSS-канал.
- Установите парсер и собирайте анекдоты с какого-нибудь сайта.
- Добавьте отметку, чтобы убедиться, что твит не превышает ограничение Твиттера по количеству слов.
Недавно я запустил модифицированную версию челленджа # 100daysofcode. Я стремлюсь каждый день писать контент, связанный с Python, наукой о данных или программированием.
Первоначально опубликовано на https://www.realpythonproject.com.