以下の内容はhttps://taq.hatenadiary.jp/entry/2022/09/10/020000より取得しました。


pythonの備忘録 -Twitter API-

こんにちは。
今回は、TwitterAPIを扱ってみようという題でやっていきます。


APIとは

API」は「Application Programming Interface」の略語のようで、既存のソフトの機能をみんなが使えるようにしてくれたやつみたいな感じです。

今回はTwitterAPIを扱いますが、他にもいろいろなものがあるようです。

qiita.com


準備

Twitter APIを使うには事前準備が必要です。

ライブラリのインストールもそうなんですが、もう一手間かかります。

利用登録

全てこちらを参考にさせていただきました。
(まあまあ面倒です。)

python-man.club


ライブラリのインストール

続いて、ライブラリ「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」とツイートしてみました。


ツイートを見ると、「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はどうやってやっているんでしょうかね。ラズパイとかで常時実行させているのかな。
もしかしたらそんなこともまた記事にするかもしれません。


それでは、最後まで読んでいただきありがとうございました。
また次回。


参考

いろいろサイトがありますが、まずは本家(?)を見るのが一番早い気がします。




以上の内容はhttps://taq.hatenadiary.jp/entry/2022/09/10/020000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14