Давайте изучим Rich Tweepy API Twitter через создание ботов Twitter.
Как новый выпускник и недавно принятый на работу, я глубоко задумался о своем карьерном пути и его текущей траектории.
После обращения за советом и наставничеством ко многим руководителям в моей фирме я постоянно получал один совет — развивать свой бренд в качестве консультанта! Именно тогда я решил открыть учетную запись Twitter и Medium и начать создавать контент.
Идея создания автоматизированных систем для развития моего бренда в Интернете была интригующей и привела меня к созданию бота для Twitter.
В этой статье я покажу пошаговое руководство по воссозданию бота Twitter, который я использую для автоматического обмена последними статьями на Medium. Он также имеет возможность автоматически ретвитить на основе хэштега или имени пользователя.
Предпосылки
Для того, чтобы следовать дальше, необходимо несколько вещей:
- Питон 3
- Любая IDE
- Аккаунт разработчика в Твиттере
- Операционная система Linux (необязательно)
- Базовое понимание 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 tweepy
s 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
Я надеюсь, что вы нашли что-то полезное в этом уроке.
Полный код вы можете найти здесь.