Рубрики
Проекты на Raspberry Pi

Twitter бот на Raspberry Pi с использованием языка Python

В настоящее время Twitter является одной из самых популярных социальных платформ. Она широко используется как для общения людей в личных целях, так и для взаимодействия различных бизнес процессов. Для бизнеса Twitter предоставляет такую удобную возможность как формирование твитов (коротких сообщений в Twitter) по расписанию или выполнение каких-либо автоматизированных действий.

В данной статье мы рассмотрим создание, настройку и управление ботом сети Twitter с помощью платы Raspberry Pi. Данный бот будет способен публиковать и читать твиты в сети Twitter. К примеру, эти способности бота могут понадобиться в том случае, когда, к примеру, плата Raspberry Pi получает изображения из какого-нибудь источника в случайные интервалы времени и затем публикует их в твитах через регулярные интервалы времени.

Во многом данный проект будет основан на библиотеке Twython – это специальный модуль, написанный на языке python, для взаимодействия с сетью Twitter. С помощью библиотеки Twython можно в сети сравнительно просто делать привычные многим вещи: публиковать и читать твиты, загружать и считывать изображения, изменять фоновое изображение и многое другое. Twython требует авторизации в сети Twitter, это можно сделать с помощью создания приложения twitter.

Необходимые компоненты

  1. Плата Raspberry Pi (купить на AliExpress).
  2. Клавиатура.
  3. Мышка.
  4. Монитор.
  5. HDMI кабель.

В данном проекте авторы в качестве операционной системы для платы использовали Raspbian stretch OS. Мы надеемся что вы хотя бы в некотором плане знакомы с данной операционной системой. Также надеемся что вы знакомы с удаленным управлением Raspberry Pi с помощью протокола SSH и программным обеспечением таким как putty. В интернете очень много информации по поводу того, как пользоваться данными инструментами, поэтому в данной статье мы на них останавливаться не будем.

Примечание: оригинал данной статьи (ссылка на него есть в конце статьи) написан в 2018 г. и тогда еще не было Raspberry Pi OS (как сейчас). Скорее всего что все, что рассмотрено в данном проекте, будет работать и на Raspberry Pi OS, но я пока лично этого не проверял. Решил перевести данный проект потому что лично мне он показался очень интересным, в дальнейшем планирую попробовать возможности взаимодействия Raspberry Pi с сетью Twitter.

Для тех, кто имеет небольшой опыт общения со Raspbian Stretch, отметим, что по умолчанию в данной ОС протокол SSH отключен и вы должны будете его включить чтобы иметь возможность управлять работой Raspberry Pi по протоколу SSH. Это можно включить, подключив к плате монитор и включив в настройках SSH. Другой способ сделать это – создать файл с именем ssh (без расширения) и скопировать его в корневой каталог вашей SD карты. Это можно сделать, вставив SD карту в компьютер.

Установка Twython на Raspberry Pi

Первое, что нам необходимо сделать в данном проекте, это установить библиотеку Twython на плату Raspberry Pi, которая позволит нам взаимодействовать с twitter.

Для установки библиотеки Twython выполните следующую последовательность шагов.

Шаг 1. Установите самые свежие обновления на плату Raspberry Pi.

Шаг 2. Установите инструменты python.

Шаг 3. Установите pip если он у вас еще не установлен.

Шаг 4. Установите twython с помощью pip.

После выполнения этих шагов в вашей плате Raspberry Pi будет установлена библиотека Twython, готовая к использованию из языка Twython.

Создание приложения Twitter

Чтобы взаимодействовать с сетью Twitter вне ее основного домена нам будут необходимы twitter API – чтобы получить к ним доступ мы создадим новое приложение Twitter с помощью библиотеки Twython. Для этого выполните следующую последовательность шагов:

Шаг 1. Зарегистрируйте себе аккаунт в Twitter (если у вас его еще нет), после чего откройте страницу по адресу https://apps.twitter.com/app/new.

Шаг 2. Заполните открывшуюся форму. Пример ее заполнения показан на следующем рисунке.

Внизу страницы примите условия пользовательского соглашения и нажмите подтвердить. После этого ваше приложение будет создано.

После этого на следующей странице (на которую вы попадете после того как нажмете подтвердить) вы увидите настройки приложения, ключи, токены доступа и разрешения. Перейдите на вкладку с разрешениями (permissions) и убедитесь в том, что у вас там выставлены настройки как на следующем рисунке:

Шаг 3. Далее нам необходимо сгенерировать токены/маркеры доступа (access tokens), которые будет использоваться для доступа к приложению twitter из скрипта на python.

Шаг 4. Также для использования Twython вам потребуется пользовательский пароль (consumer secret) и пользовательский ключ (consumer key), которые можно найти на странице (вкладке) с токеном.

С ключами и токенами доступа «на руках» и установленной библиотекой Twython мы теперь готовы к написанию скрипта, который будет способен читать и писать твиты.

Скрипт Python для бота Twitter на Raspberry Pi

Удостоверьтесь, что вы находитесь в корневом каталоге, с помощью команды:

Если у вас еще нет каталога, в котором вы будете хранить свои проекты Raspberry Pi, то создайте его с помощью команды:

Вы можете дать любое название этому каталогу (на свой вкус).

Затем перейдите в этот созданный каталог:

Затем откройте редактор чтобы писать в нем скрипт на python:

Вы можете дать любое название этому файлу со скриптом на python.

В открывшемся окне редактора напишите следующие строчки кода:

В этот фрагмент кода программы вам необходимо вставить свои ключи и токены доступа, которые вы получили при создании приложения twitter. Затем нажмите Ctrl + X и затем Y чтобы сохранить изменения и выйти из редактора.

Когда скрипт на python будет готов, у нас появится возможность публиковать твиты, но перед этим нам необходимо сделать скрипт на python в виде исполнимого файла. Это можно сделать с помощью следующей команды в терминале:

После выполнения этой команды скрипт станет исполнимым файлом и мы сможем публиковать твиты с помощью команд, подобной этой:

Автоматизация твитов с Raspberry Pi

Одна из самых замечательных вещей, которую мы можем сделать на этом этапе – это автоматизировать публикацию твитов, публикуемых платой Raspberry Pi. К примеру, если у вас собран проект метеостанции на Raspberry Pi, то вы можете автоматически публиковать данные с нее в твитах. Возможность автоматического постинга твитов будет полезна и во многих других случаях.

Для этого все, что вам необходимо сделать, это включить скрипт, который, к примеру, измеряет температуру и влажность окружающего воздуха, в состав ранее рассмотренного нами фрагмента кода для публикации твитов и сделать cron job (программа, используемая для периодического выполнения заданий в определённое время).

К примеру, рассмотрим пример включения подобного скрипта для случая когда у нас камера делает снимки определенных событий и мы хотим чтобы снимки (изображения) этих событий публиковались в твитах автоматически.

Для этого внесем небольшие изменения в файл pitwits.py и дадим получившемуся файлу новое имя piimagetwits.py.

Сохраним файл и выйдем из него.

Сделаем этот скрипт исполнимым файлом:

Создадим cron job, для этого выполним следующую команду:

Чтобы создать cron job добавьте эти строки ниже, в них укажите тот тайминг, который вам нужен.

*/60 * * * * * python /home/pi/rpiprojects/piimagetwits.py

Эта cron job будет исполняться каждую минуту (мы ввели тайминг 60 секунд), но вы можете указать свой тайминг.

Больше информации о том, как использовать тайминги в cron job, вы можете найти в описании того редактора, который вы используете. Мы в нашем проекте использовали редактор vim.

Тестирование работы проекта

На следующих рисунках показан пример публикации твитов с помощью нашего проекта.

Данный обучающий проект может быть улучшен вами до того практического применения, которое вам необходимо от социальной сети Twitter.

Источник статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *