Давайте изучим Rich Tweepy API Twitter через создание ботов Twitter.

Как новый выпускник и недавно принятый на работу, я глубоко задумался о своем карьерном пути и его текущей траектории.

После обращения за советом и наставничеством ко многим руководителям в моей фирме я постоянно получал один совет — развивать свой бренд в качестве консультанта! Именно тогда я решил открыть учетную запись Twitter и Medium и начать создавать контент.

Идея создания автоматизированных систем для развития моего бренда в Интернете была интригующей и привела меня к созданию бота для Twitter.

В этой статье я покажу пошаговое руководство по воссозданию бота Twitter, который я использую для автоматического обмена последними статьями на Medium. Он также имеет возможность автоматически ретвитить на основе хэштега или имени пользователя.

Предпосылки

Для того, чтобы следовать дальше, необходимо несколько вещей:

  1. Питон 3
  2. Любая IDE
  3. Аккаунт разработчика в Твиттере
  4. Операционная система Linux (необязательно)
  5. Базовое понимание Bash (необязательно)

Примечание. Нажмите здесь, чтобы получить инструкции по получению учетной записи разработчика. Обязательно сохраните ключи API. Они понадобятся вам позже.

Структура проекта

Я разделил этот проект на 3 отдельных файла Python.

MediumPosting.py выбирает самую последнюю статью на Medium и публикует ее в Twitter. Ретвитить ретвиты на основе хэштега или имени пользователя.

Main объединяет оба сценария и подключается к определенной учетной записи Twitter. Файл install.sh устанавливает зависимости и не является необходимым.

Run.sh будет объяснено в разделе CronTab.

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

pip install tweepy
pip install requests

Обязательно сделайте это в каталоге, где вы кодируете. Tweepy — это API Twitter, который мы будем использовать, тогда как запросы используются для создания HTTP-запросов. По сути, две приведенные выше строки являются содержимым файла install.sh.

Получение средних сообщений

Здесь мы будем работать с файлом mediumPosting.py.

Он требует двух функций. Один для получения самой последней статьи, а другой для создания поста в Твиттере с соответствующей ссылкой.

Для начала нам понадобятся три операции импорта для анализа URL-адреса и выполнения HTTP-запросов. Они следующие:

from urllib.request import urlretrieve
from urllib.parse import urlparse
import requests

Вот полный исходный код того, как получить вашу последнюю статью на Medium и извлечь ее содержимое:

В приведенном выше коде:

Функция fetch_article принимает URL-адрес профиля Medium и извлекает список сообщений с помощью HTTP-запроса (который возвращает стопку статей HTTP).

Создайте URL-адрес, включив свое имя пользователя в поле {@username} канала Medium RSS, как показано ниже:

"https://api.rss2json.com/v1/api.json?rss_url=https://medium.com/feed/{@username}"

Первая запись в HTTP-ответе — это самая последняя статья. Создается и возвращается словарь, содержащий title, link и thumbnail этой статьи.

Чтобы получить статью, выполните базовый запрос на получение URL-адреса и создайте словарь, как указано выше. После этого мы создали функцию Title_Link_Post, которая использует базовое форматирование строк для создания контента для нашего поста в Twitter.

Это все, что требуется для файла mediumPosting.py.

Ретвит на основе хэштега

В этом разделе мы будем заполнять файл retweet.py, чтобы автоматически ретвитить заданное количество сообщений на основе хэштегов.

Здесь мы берем функцию, которая принимает три входные переменные, которые пользователь аутентифицировал через OAuth — называемую auth (которую мы создадим в main.py), хэштег в виде строки и количество твитов для ретвита.

Для этого мы воспользуемся всеми преимуществами tweepy API, используя его функцию Cursor, как показано ниже:

tweepy.Cursor(auth.search, hashtag).items(num)

Auth.search указывает, что рассматриваемая аутентифицированная учетная запись ищет, хэштег — это просто строка для поиска.

Расширение .items(num) захватывает, где num – это int, представляющее количество первых статей.

После того, как твиты будут найдены, мы будем использовать функцию .retweet, чтобы поделиться ими.

Вот функции для ретвита нескольких последних твитов пользователя, и они работают почти одинаково. Операторы печати были включены для ведения журнала.

Подключение к вашей учетной записи

Аутентификация — это просто передача правильных ключей API tweepys OAuthHandler функциям.

Как только это будет сделано, мы сможем получить эту переменную auth из retweet.py. Он представляет собой API и соответствующую учетную запись, в которую мы вошли (называется auth_acc ниже). Это достигается следующим образом:

API_KEY = "API KEY"
API_SECRET_KEY = "SECRET KEY"
API_ACCESS_TOKEN = "ACCESS TOKEN"
API_ACCESS_SECRET = "ACCESS SECRET"
# Authentication
auth = tweepy.OAuthHandler(API_KEY,API_SECRET_KEY)
auth.set_access_token(API_ACCESS_TOKEN, API_ACCESS_SECRET)
auth_acc = tweepy.API(auth)

Просто замените значения в кавычках ключами API, которые вы сохранили при создании учетной записи разработчика.

Как только это будет сделано, вы можете просто импортировать файлы mediumPosting и retweet в файл main и использовать соответствующие вызовы функций в вашем основном методе.

См. ниже:

CronTab

Содержание run.sh довольно простое.

Файл содержит одну строку, которая использует crontab (утилита Linux для планирования заданий) для автоматического запуска бота через определенные промежутки времени. Ведь боты должны быть автоматическими (хотя бы в принципе).

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

MM HH DD MM YYY python3 PATH/TO/Main.py

Моя запись ниже настроена на запуск каждые 10 минут. Я знаю, это многовато, но пример работает:

*/10 * * * * python3 ./main.py

Я надеюсь, что вы нашли что-то полезное в этом уроке.

Полный код вы можете найти здесь.