こんにちは。
今回は、TwitterのAPIを扱ってみようという題でやっていきます。
APIとは
「API」は「Application Programming Interface」の略語のようで、既存のソフトの機能をみんなが使えるようにしてくれたやつみたいな感じです。
今回はTwitterのAPIを扱いますが、他にもいろいろなものがあるようです。
準備
ライブラリのインストールもそうなんですが、もう一手間かかります。
利用登録
全てこちらを参考にさせていただきました。
(まあまあ面倒です。)
ライブラリのインストール
続いて、ライブラリ「tweepy」のインストールを行います。
pip install tweepy
これを実行するだけでOKです。
しばらく待てばインストールが完了します。
以上で準備は終わりました。
Twitter APIを使う
では、早速使ってみます。
tweepyを使うにはライブラリや認証が必要なので、それらを読み込んだりするコードが必要となります。
これは共通のコードなので、定型文としてコピペして使えば問題ないと思います。
#ライブラリのインポート import tweepy #取得したキーを格納 consumer_key = "" consumer_secret = "" access_token = "" access_token_secret = "" #APIとTwitterアカウントの認証 auth = tweepy.OAuth1UserHandler( consumer_key, consumer_secret, access_token, access_token_secret ) api = tweepy.API(auth)
うまく認証されているかどうかは、
#ユーザーIDの表示 print(api.verify_credentials().screen_name)
を実行することで、そのアカウントのユーザーIDが表示されるので、確認できます。
ツイートする
では早速、ツイートをしてみます。
#ツイートの送信 api.update_status( "Tweet from Python" #本文 )
ツイートの確認には、Twitterを開いて見るのも良いですが、
#ツイートのURLを表示 print(f"https://twitter.com/user/status/{tweet.data['id']}")
を実行してURLを出力させることでもできます。
今回は「Tweet from Python」とツイートしてみました。
— taq (@taq2777) 2022年9月9日
ツイートを見ると、「Twitter for Android」などが書かれている部分に「taq_programming」(利用登録のところで設定した名前)が表示されていました。
バージョンが2つあるようで、こちらでも動きはします。
(こちらが新バージョン?)
### 定型文 ### #ライブラリのインポート import tweepy #取得したキーを格納 consumer_key = "" consumer_secret = "" access_token = "" access_token_secret = "" #認証 client = tweepy.Client( consumer_key=consumer_key, consumer_secret=consumer_secret, access_token=access_token, access_token_secret=access_token_secret ) ### ここまで ### #ツイートの送信 tweet = client.create_tweet( text="Tweet from Python" #本文 )
ツイートを取得する
次は、ツイートを取得してみます。
タイムライン
タイムラインにあるツイートを取得します。
#タイムラインのツイートを取得 tweets = api.home_timeline() #取得したツイートを表示 for tweet in tweets: print(tweet.id, tweet.created_at) #IDと投稿時間 print(tweet.user.name, f"@{tweet.user.screen_name}") #ユーザーの名前とID print(tweet.text) #本文 print("-----") #ただの区切り
上の例では、ツイートのID、投稿時間、本文、そしてツイート主の名前とIDを出力するようにしてみました。
print(tweet)
と実行すれば取得したツイートの情報が見られるので、tweet.~~
の形でprintさせれば出力できます。
最新のものが得られるはずですが、自分の環境では10時間ほど前のものが最新となっていました。
検索
特定の単語を検索し、それが含まれるツイートを表示します。
#ヒットしたツイートを取得 tweets = api.search_tweets( "つぶやきprocessing" #検索したい言葉 ) #取得したツイートを表示 for tweet in tweets: print(tweet.id, tweet.created_at) #IDと投稿時間 print(tweet.user.name, f"@{tweet.user.screen_name}") #ユーザーの名前とID print(tweet.text) #本文 print("-----") #ただの区切り
これを実行すると「つぶやきprocessing」と検索してヒットしたツイートのIDと本文が出力されます。
まとめ
以上、本当にさらっとですが、Twitter APIを扱えるようにしてみました。
中身は理解していないので役に立つんだか立たないんだかという感じですが。
他にもいろいろできるようですが、特に使い道を考えておらず、とりあえずTwitter APIができればいいな程度で書いてみた次第です。
そういえば、BOTはどうやってやっているんでしょうかね。ラズパイとかで常時実行させているのかな。
もしかしたらそんなこともまた記事にするかもしれません。
それでは、最後まで読んでいただきありがとうございました。
また次回。
参考
いろいろサイトがありますが、まずは本家(?)を見るのが一番早い気がします。