Как я автоматически создал в Twitter список FreeCodeCampers за 5 минут

Моника Пауэлл

Использование оболочки Twython Twitter API для добавления пользователей в список Twitter

1*mUQDjnECZGSncv_imkD3yA

Мы собираемся создать сценарий Python, который будет автоматически искать в Twitter лиц, использующих #freeCodeCamp хэштег и добавьте их в список Twitter «FreeCodeCampers». Списки Twitter — это способ управлять группой людей в Twitter и собирать все их твиты в потоке без необходимости следить за каждой отдельной учетной записью. Списки Twitter могут содержать до 5000 отдельных аккаунтов Twitter.

Мы можем добиться этого, выполнив следующие действия:

  • Установка необходимых пакетов Python
  • Регистрация приложения в Twitter
  • Создание и доступ к нашим учетным данным Twitter
  • Вызовы API поиска и списков в Twitter

Итак, давайте начнем.

1. Установка необходимых пакетов Python

Создайте файл с названием addToFreeCodeCampList.pyкоторый будет содержать наш основной сценарий, а затем импортировать два модуля Python в этот файл:

  • Конфигурация импорта: В том же каталоге, что и нашaddToFreeCodeCampList.py сценария, создайте файл с именем config.py который хранит наши конфиденциальные аккаунты Twitter API. Мы собираемся импортировать наши учетные данные API из этого файла в наш addToFreeCodeCampList.py сценарий, включив строку import config. Twitter требует действительный ключ API, секрет API, маркер доступа и секрет маркера для всех запросов API.
  • Импорт Twython: Twython – это оболочка Python для API Twitter, которая облегчает программный доступ к данным из Twitter и манипулирование ими с помощью Python. Мы можем импортировать Twython с помощью следующей строки from twython import Twython, TwythonError.

ваш addToFreeCodeCampList.py сценарий должен выглядеть следующим образом.

import configfrom twython import Twython, TwythonError

2. Регистрация программы в Twitter

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

  1. Чтобы создать эти учетные данные, нам нужно создать приложение Twitter. Перейдите на сайт управления приложениями и нажмите кнопку «Создать новую программу». Это должно направить вас на страницу, похожую на приведенную ниже.
1*H8TiOR6qnIXo_sNoRb7OGw

2. Заполните поля и нажмите кнопку «Создать Twitter». После этого вы будете перенаправлены на страницу с подробной информацией о вашей заявке.

3. Создание и доступ к нашим учетным данным Twitter

  1. Нажмите на вкладку «Ключи и маркеры доступа» и скопируйте «Ключ потребителя (ключ API)» и «Секрет потребителя (секрет API)» в config.py файл
  2. Перейдите вниз и нажмите кнопку «Создать мой маркер доступа». Скопируйте сгенерированный «Access Token» и «Access Token Secret» в config.py файл.

Для справки я рекомендую отформатировать файл config.py подобно файлу ниже:

3. Пока все наши учетные данные Twitter находятся внутри нашего config.py файл, и мы импортировали config в наш addToFreeCodeCampList.py файл. Однако мы фактически не передавали никакую информацию между файлами.

Давайте изменим это, создав объект Twython и передав необходимый ключ API, секреты API и маркер API из нашего config.py файл с таким:

twitter = Twython(config.api_key, config.api_secret, config.access_token, config.token_secret)`

The addToFreeCodeCampList.py теперь файл должен выглядеть примерно так:

import config
from twython import Twython, TwythonError
# create a Twython object by passing the necessary secret passwordstwitter = Twython(config.api_key, config.api_secret, config.access_token, config.token_secret)

4. Вызовы API поиска и списка в Twitter

  1. Давайте сделаем вызов API для поиска в Twitter и вернем 100 последних твитов (за исключением ретвитов), содержащих «#freeCodeCamp»:
# return tweets containing #FreeCodeCampresponse = twitter.search(q=’”#FreeCodeCamp” -filter:retweets’, result_type=”recent”, count=100)

2. Просмотрите твиты, полученные в результате нашего поиска

# for each tweet returned from search of #FreeCodeCampfor tweet in response[‘statuses’]: # print tweet info if needed for debugging print(tweet) print(tweet[‘user’][‘screen_name’])

Один твит, возвращенный этим вызовом API, выглядит так у JSON:

{'created_at': 'Sun Dec 24 00:23:05 +0000 2017', 'id': 944725078763298816, 'id_str': '944725078763298816', 'text': 'Why is it so hard to wrap my head around node/express. Diving in just seems so overwhelming. Templates, forms, post…  'truncated': True, 'entities': {'hashtags': [], 'symbols': [], 'user_mentions': [], 'urls': [{'url': ' 'expanded_url': ' 'display_url': 'twitter.com/i/web/status/9…', 'indices': [117, 140]}]}, 'metadata': {'iso_language_code': 'en', 'result_type': 'recent'}, 'source': '<a href=" rel="nofollow">Twitter Web Client</a>', 'in_reply_to_status_id': None, 'in_reply_to_status_id_str': None, 'in_reply_to_user_id': None, 'in_reply_to_user_id_str': None, 'in_reply_to_screen_name': None, 'user': {'id': 48602981, 'id_str': '48602981', 'name': 'Matt Huberty', 'screen_name': 'MattHuberty', 'location': 'Oxford, MS', 'description': "I'm a science and video game loving eagle scout with a Microbio degree from UF. Nowadays I'm working on growing my tutoring business at Ole Miss. Link below!", 'url': ' 'entities': {'url': {'urls': [{'url': ' 'expanded_url': ' 'display_url': 'thetutorcrew.com', 'indices': [0, 23]}]}, 'description': {'urls': []}}, 'protected': False, 'followers_count': 42, 'friends_count': 121, 'listed_count': 4, 'created_at': 'Fri Jun 19 04:00:44 +0000 2009', 'favourites_count': 991, 'utc_offset': -28800, 'time_zone': 'Pacific Time (US & Canada)', 'geo_enabled': False, 'verified': False, 'statuses_count': 199, 'lang': 'en', 'contributors_enabled': False, 'is_translator': False, 'is_translation_enabled': False, 'profile_background_color': 'C0DEED', 'profile_background_image_url': ' 'profile_background_image_url_https': ' 'profile_background_tile': False, 'profile_image_url': ' 'profile_image_url_https': ' 'profile_banner_url': ' 'profile_link_color': '1DA1F2', 'profile_sidebar_border_color': 'C0DEED', 'profile_sidebar_fill_color': 'DDEEF6', 'profile_text_color': '333333', 'profile_use_background_image': True, 'has_extended_profile': True, 'default_profile': True, 'default_profile_image': False, 'following': False, 'follow_request_sent': False, 'notifications': False, 'translator_type': 'none'}, 'geo': None, 'coordinates': None, 'place': None, 'contributors': None, 'is_quote_status': False, 'retweet_count': 1, 'favorite_count': 0, 'favorited': False, 'retweeted': False, 'lang': 'en'}MattHuberty

и как это на Twitter.com:

3. Добавьте твиттеров в наш список Twitter

Чтобы добавить автора твита в наш список Twitter, нам нужно имя пользователя, связанное с твитом tweet['user']['screen_name']

Давайте попробуем добавить пользователей из этих твитов в наш список Twitter FreeCodeCampers. Я создал свой список в Твиттере, где для моего сценария есть слаг freecodecampers и owner_screen_name это мое, водонепроницаемое сердце.

for tweet in response['statuses']:
# try to add each user who has tweeted the hashtag to the list try: twitter.add_list_member(slug=’YOUR_LIST_SLUG’, owner_screen_name=’YOUR_USERNAME’, screen_name= tweet[‘user’][‘screen_name’])
#if for some reason Twython can't add user to the list print exception messageexcept TwythonError as e: print(e)

Вы можете создать собственный список Twitter, перейдя в свой профиль Twitter, нажав «Списки» на рабочем столе и щелкнув справа «Создать новый список». Для получения дополнительной информации см. официальную документацию Twitter List.

1*TPUBuOqUwh_WXUNrUu6MyA

Вы можете проверить свой сценарий, запустив python addToFreeCodeCampList.py в терминале.

Мой окончательный сценарий выглядит так:

Этот сценарий можно настроить на автоматический запуск локально или удаленно через задание cron, что позволяет выполнять задание по установленному расписанию.

Не стесняйтесь оставлять комментарии ниже или пишите мне в Twitter, если у вас есть вопросы, предложения или вы хотите поделиться тем, как вы изменили этот сценарий!

Если вам понравилось читать эту статью, попробуйте нажать кнопку хлопка? Хотите увидеть больше моих работ? Просмотрите мой GitHub, чтобы просмотреть мой код и узнать больше о моем опыте разработки на

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

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