tweepyメモ

手動でtweet botを動かすための前準備として


前提:Consumer KeyとConsumer Secretは取得済みであること

ユーザー認証用URLを出力

認証に関するチュートリアル — tweepy 3.6.0 ドキュメント

import tweepy

# Consumer KeyとConsumer Secretを引数に指定
auth = tweepy.OAuthHandler("CONSUMER_KEY", "CONSUMER_SECRET")

try:
    redirect_url = auth.get_authorization_url()

    # リダイレクトURLを出力
    print('redirect_url')
    print(redirect_url)

    # リクエストトークンを出力
    print('request_token')
    print(auth.request_token)

except tweepy.TweepError:
    print('Error! Failed to get request token.')

出力例は以下の通り

redirect_url
https://api.twitter.com/oauth/authorize?oauth_token=xxxxxxxxxxxxxxxxxxxxxxxxxxx
request_token
{'oauth_token': 'xxxxxxxxxxxxxxxxxxxxxxxxxxx', 'oauth_token_secret': 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy', 'oauth_callback_confirmed': 'true'}

Webブラウザで表示して承認

認証させたいTwitterユーザーでログインしているWebブラウザから、redirect_urlで出力された URL にアクセスする
アプリを承認するボタンをクリックすると、7桁の数字が表示される(=VERIFIER)

アクセストークンを取得

import tweepy

# Consumer KeyとConsumer Secretを引数に指定
auth = tweepy.OAuthHandler("CONSUMER_KEY", "CONSUMER_SECRET")

# リダイレクトURLに含まれる oauth_token パラメータ値(または request_token 辞書の oauth_token 値)
OAUTH_TOKEN = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'
# Webブラウザに表示された7桁の数字を指定
VERIFIER = '1234567'

auth.request_token = { 'oauth_token' : OAUTH_TOKEN, 
                       'oauth_token_secret' : VERIFIER } 

try:
    auth.get_access_token(VERIFIER)

    print('access_token')
    print(auth.access_token)
    print('access_token_secret')
    print(auth.access_token_secret)

except tweepy.TweepError:
    print('Error! Failed to get request token.')

出力例は以下の通り

access_token
12345678-zzzzzzzzzzzzzzzz
access_token_secret
sssssssssssssssssssssssss

Twitter API v2 でツイート

前提: Consumer Key, Consumer Secretは取得済み
アクセストークン、アクセストークンシークレットは直前で取得したものを使用(いまのところ無期限使用可能)

Client — tweepy 4.14.0 documentation

import tweepy

# Twitterオブジェクトの生成
api = tweepy.Client(
    consumer_key="CONSUMER_KEY",
    consumer_secret="CONSUMER_SECRET",
    access_token="ACCESS_TOKEN",
    access_token_secret="ACCESS_TOKEN_SECRET"
)

# API 呼び出し
api.create_tweet(text="Tweetするテキスト文字列")

Twitter API v2 で画像付きツイート

zenn.dev

画像(media)のアップロードはいまのところ v1 経由で行い、取得できた media_id を v2 の create_tweet() にパラメータで渡すみたい。

SUSPENDEDの話

note.com