Twitter API v2
TweepyからTwitter API v2を使う際に、parameterを使ってさらに詳細なデータを取得してみました。
今回はツイートをしていきますが、ツイートにはいくつかの種類があります。
通常のツイート、返信ツイート、投票ツイート、メディア付きツイート、リツイート、引用リツイートなどです。
今回はこの中の通常のツイート、返信ツイート、投票付きツイート、メディア付きツイートに関して解説していきます。
というもののTwitter API v2を使うTweepyで、通常のツイートと返信ツイート、投票ツイートは同じコマンドである「.create_tweet」だからです。
またメディア付きツイートはよく使うと思うのですが、残念ながらTwitter API v2ではまだ実装されていないため、こちらはv1.1での方法を解説します。
それでは始めていきましょう。
通常のツイート、返信ツイート、投票ツイートはTwitter API v2なのでv2用にAPIに接続しますが、ツイートするのにv1.1の認証も必要なようです。
ということでこんな感じで接続します。
import tweepy
BT = "Your bearer token"
CK = "Your API key"
CS = "Your API secret"
AT = "Your Access token"
ATS = "Your access token secret"
client = tweepy.Client(bearer_token=BT, consumer_key = CK, consumer_secret=CS, access_token=AT, access_token_secret=ATS)
通常のツイート
通常のツイートをするには、「.create_tweet(text=’ツイート内容’)」です。
client.create_tweet(text='Twitter API v2のテストです。')
実行結果
Response(data={'id': '1545768347723149313', 'text': 'Twitter API v2のテストです。'},
includes={}, errors=[], meta={})
レスポンスとして、ツイートIDと内容が返ってきます。
必要があればこれを変数に格納して使用することも可能です。
tweet_data = client.create_tweet(text='Twitter API v2のテストです。')
print(tweet_data)
print(tweet_data.data['id'])
print(tweet_data.data['text'])
実行結果
Response(data={'id': '1546109803675918337', 'text': 'Twitter API v2のテストです。'},
includes={}, errors=[], meta={})
1546109803675918337
Twitter API v2のテストです。
次に紹介する返信ツイートではツイートIDを使いますので、このようにして取得するというのを覚えておくといいでしょう。
返信ツイート
特定のツイートに返信するには「.create_tweet(text=’ツイート内容’, in_reply_to_tweet_id=’返信するツイートのID’)」とします。
client.create_tweet(text='Twitter API v2の返信のテストです。', in_reply_to_tweet_id=1545768347723149313)
実行結果
Response(data={'id': '1545768980651995137', 'text': 'Twitter API v2の返信のテストです。'},
includes={}, errors=[], meta={})
投票ツイート
Twitterのシステムとして他のユーザーに投票してもらうこともできます。
そのような投票ツイートをする場合には「.create_tweet(text=’ツイート内容’, poll_potions=[’回答1’, ’回答2’, ’回答3’], poll_duration_minutes=投票時間(分))」とします。
client.create_tweet(text='Twitter API v2で投票システムのテストです。', poll_options=['回答1','回答2','回答3'], poll_duration_minutes=60)
実行結果
Response(data={'id': '1545768046580547584', 'text': 'Twitter API v2で投票システムのテストです。'},
includes={}, errors=[], meta={})
メディア付きツイート(v1.1)
最後にメディア付きツイート、つまり画像や動画が付いているツイートですが、こちらは2022年7月ではTwitter API v2にまだ実装されていないようです。
そのためTwitter API v1.1を使用していきます。
Twitter API v1.1の「.update_status_with_media(status=’ツイート内容’, filename=’アップロードするファイルのパス’)」を使用します。
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
api.update_status_with_media(status = 'Twitter API v1.1のメディア付きツイートのテストです。', filename = f'./3pysci_logo.png')
実行結果
Status(_api=<tweepy.api.API object at 0x10a745cc0>, _json={'created_at': 'Sun Jul 10 11:57:12 +0000
2022', 'id': 1546101227888705539, 'id_str': '1546101227888705539', 'text': 'Twitter API
v1.1のメディア付きツイートのテストです。 https://t.co/7xop1AbR0E',
(中略)
notifications=False, translator_type='none', withheld_in_countries=[]), geo=None, coordinates=None,
place=None, contributors=None, is_quote_status=False, retweet_count=0, favorite_count=0,
favorited=False, retweeted=False, possibly_sensitive=False, lang='ja')
これでAPIからツイートできるようになりました。
次回はツイートの情報を取得する「.get_tweet」を見ていきましょう。
ではでは今回はこんな感じで。
コメント