tweepyとは?tweepyでできること7選|初心者向け

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2022年1月)

✔このような方へ向けて書かれた記事となります

「tweepyって何?どんな事ができるの?」

「Python初心者だけど、きちんと使いこなせるか不安、、、」

「実例があるとわかりやすいんだけど、どこかに書いてないかな?」

✔当記事を通じてお伝えすること

  • tweepyとは?tweepyでできること7選|初心者向け
  • tweepy使用のスタートライン!APIオブジェクトの作成までを解説
  • 【実践編】機能を実装する実例コードのご紹介

一緒に進めていくにあたって「Developerアカウントを持っていない」という方はこちら↓を参考に取得してください

icon
icon

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

tweepyとは?tweepyでできること7選|初心者向け

①機能の自動化

Pythonのコードでリツイート等の機能を操作することができます

プログラムでリツイート、いいね、DM、フォローなどの機能を実装すれば、自動化することも可能です

②自身のタイムラインを取得

最新の20ツイートを取得します

認証済みの場合、デフォルトで自身のタイムラインを取得します

引数でユーザーIDやスクリーンネームを指定した場合、特定のユーザーの20ツイートを取得することも可能です

③特定の単語を含むツイートを取得

特定の単語による検索機能を使い、該当するツイートを取得できます

④自分のツイートに対するリツイートを取得

自身のツイートに対する最新の20リツイートを取得できます

⑤ユーザー情報の取得

特定のユーザー情報を取得できます

⑥フォロー状況の確認

ユーザーのフォロー状況をチェックすることができます

⑦エリアを指定し、トレンドを取得

エリアを指定し、50個のトレンドワードを取得することができます

地域IDは「WOEID」といい、Google検索などで各都道府県のIDを探すことができます

tweepy使用のスタートライン!APIオブジェクトの作成までを解説

上記の機能を使うには、認証済みのユーザーとしてapiオブジェクトの作成が必要です

インストールからapiオブジェクトの作成までのご説明していきます

①tweepyをインストールする

tweepyライブラリをインストールしよう!

pip install tweepy

②consumer key、consumer secret keyを取得する

「Developer Portal」ページ内、ユーザー情報の中からキーを取得します

Consumer Keysを選択してください

登録後、キーが提供されますが、コピー等を忘れた方は、regenerateで再度取得し直しましょう

既にアプリを作ってしまった人はキーが変更になるので、設定を書き換えましょう

初めての方は何もしなくても構いません

apiオブジェクトを作成する

ここからは、jupyter-notebookを使ってコードを書いていきます

モジュールのインポート

import tweepy, webbrowser

キーを変数へ格納

先程のキーを変数へ格納しておきます

consumer_key = “xxxxxxxxxxxxxx”
consumer_secret = “XXXXXXXXXXXXXX”

OAuthHandlerメソッド

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)

authorize用の確認画面が開く

ユーザー認証のために「access_token」、「access_token_secret」を取得する必要があります

まずはtoken取得のためにPINを入手します

webbrowser.open(auth.get_authorization_url())

ブラウザが立ち上がり、PINが表示されます

7桁のPINをコピーしておきます

PINを変数に格納する

user_pin = input(“input pin number -> “)

input画面が出てくるので、user_pinに上記で出てきた数字を格納します

アクセストークンを取得する

auth.get_access_token(user_pin)

PINをauthに登録します

アクセストークンを保存して、次回以降使う場合

auth.set_access_token(access_token, access_token_secret)

ここで出てきたトークンは、今後も変更することはありません

トークンを保存しておくことで、次回以降はここまでのステップを省いて進めることができます!

apiオブジェクトを作成

api = tweepy.API(auth)

ユーザー認証の完了したapiオブジェクトを作成されました

全体のコードはこちら

import tweepy, webbrowser
consumer_key="xxxxxxxxxxxxx"
secret_key="XXXXXXXXXXXXXX"

auth = tweepy.OAuthHandler(consumer_key, secret_key)
webbrowser.open(auth.get_authorization_url())
user_pin_input = input("pin-> ")
auth.get_access_token(user_pin_input)
access_token="xXxXxXxXxXxXxXxXxXxX"
access_token_secret="XxXxXxXxXxXxXxXxXxXxXxXxXxXxXx"
auth.set_access_token(access_token, access_token_secret)
api=tweepy.API(auth)

【実践編】機能を実装するコードのご紹介

①機能の自動化

API.retweet(id)

API.direct_messages([since_id][, max_id][, count][, page][, full_text])

API.create_friendship(id/screen_name/user_id[, follow])

API.create_favorite(id, *, include_entities)

【例】

api.create_friendship("yulikepython")

②自身のタイムラインを取得

API.user_timeline(*, user_id, screen_name, since_id, count, max_id, trim_user, exclude_replies, include_rts)

【例】

api.user_timeline()

③特定の単語を含むツイートを取得

API.search_tweets(q[, lang][, locale][, rpp][, page][, since_id][, geocode][, show_user])

【例】

qs = api.search_tweets("web3", lang="ja")
for q in qs:
    print(q.text)

④自分のツイートに対するリツイートを取得

API.get_retweets_of_me(*, count, since_id, max_id, trim_user, include_entities, include_user_entities)

【例】

api.get_retweets_of_me()

⑤ユーザー情報の取得

API.get_user(id/user_id/screen_name)

【例】

api.get_user(screen_name="yulikepython")

⑥フォロー状況の確認

API.get_friendship(*, source_id, source_screen_name, target_id, target_screen_name)

【例】

api.get_friendship(source_screen_name="yulikepython", target_screen_name="someone's screen_name")

⑦エリアを指定し、トレンドを取得する

API.get_place_trends(id *, exclude)

【例】

api.get_place_trends(id=1118370)

例として、東京のWOEID「1118370」でトレンドを取得しています

まとめ

当記事でご紹介した内容をまとめますと、下記のとおりです

  1. tweepyを使うと、PythonでTwitterを操作することができるようになります
  2. ツイートの自動化や、ユーザー周りのことなどほとんどの事が実現可能です
  3. 使用するためにはまずユーザー認証済のapiオブジェクトを作る必要がある

具体的なコードを知りたい方はいつでも当記事へ戻って確認してください

また、その他にもできることはあり、dirメソッドで見てみるとこの通りです

['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'add_list_member', 'add_list_members', 'auth', 'available_trends', 'cache', 'chunked_upload', 'chunked_upload_append', 'chunked_upload_finalize', 'chunked_upload_init', 'closest_trends', 'create_block', 'create_favorite', 'create_friendship', 'create_list', 'create_media_metadata', 'create_mute', 'create_saved_search', 'delete_direct_message', 'destroy_block', 'destroy_favorite', 'destroy_friendship', 'destroy_list', 'destroy_mute', 'destroy_saved_search', 'destroy_status', 'geo_id', 'get_blocked_ids', 'get_blocks', 'get_direct_message', 'get_direct_messages', 'get_favorites', 'get_follower_ids', 'get_followers', 'get_friend_ids', 'get_friends', 'get_friendship', 'get_list', 'get_list_member', 'get_list_members', 'get_list_memberships', 'get_list_ownerships', 'get_list_subscriber', 'get_list_subscribers', 'get_list_subscriptions', 'get_lists', 'get_media_upload_status', 'get_muted_ids', 'get_mutes', 'get_oembed', 'get_place_trends', 'get_profile_banner', 'get_retweeter_ids', 'get_retweets', 'get_retweets_of_me', 'get_saved_search', 'get_saved_searches', 'get_settings', 'get_status', 'get_user', 'home_timeline', 'host', 'incoming_friendships', 'list_timeline', 'lookup_friendships', 'lookup_statuses', 'lookup_users', 'media_upload', 'mentions_timeline', 'no_retweets_friendships', 'outgoing_friendships', 'parser', 'proxy', 'rate_limit_status', 'remove_list_member', 'remove_list_members', 'remove_profile_banner', 'report_spam', 'request', 'retry_count', 'retry_delay', 'retry_errors', 'retweet', 'reverse_geocode', 'search_30_day', 'search_full_archive', 'search_geo', 'search_tweets', 'search_users', 'send_direct_message', 'session', 'set_settings', 'simple_upload', 'subscribe_list', 'supported_languages', 'timeout', 'unretweet', 'unsubscribe_list', 'update_friendship', 'update_list', 'update_profile', 'update_profile_banner', 'update_profile_image', 'update_status', 'update_status_with_media', 'upload_host', 'user_agent', 'user_timeline', 'verify_credentials', 'wait_on_rate_limit']

たくさんありますが、使いたいものはぜひ試してみてください!

タイトルとURLをコピーしました