【Tweepy】Twitter API v2:ツイート、返信(リプライ)、投票付きツイート、メディア付きツイート(v1.1)[Python]

  • URLをコピーしました!
目次

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」を見ていきましょう。

ではでは今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次