sugiii8's tech blog.
post: 2023-07-10
INDEX

止まっていたTwitter BotをTwitter API V2に移行して復活させた

thumbnail

Twitter Bot動かない

こちらのtwitter_bot
気がついたら動かなくなってて、見てみたら原因が2つあった

  • アクセスしてないアカウントと見なされていた。Botの自動ツイートはアクセスとみなされないっぽい。
  • Twitter API V1でのアクセス方法を採用していたので単純に復活することができなかった。


やったこと

tweepyと使ってTwitter API V2に対応した

  • API V2に対応するようにAPIアカウント情報取り直した
  • V2用アカウントを作成すると以下が生成されるのでコピーしておく
    • BEARER_TOKEN
    • API_KEY
    • API_SECRET
    • ACCESS_TOKEN
    • ACCESS_TOKEN_SECRET
  • 自分の環境はfly.ioにデプロイしてたのでfly.io上の環境変数にセットしておく
  • pythonプロジェクトにtweepyを導入(元々使ってたpython-twitterは外した)
  • pythonのtwitter client生成処理をV2向けに修正する
# V1
client = twitter.Api(consumer_key=os.environ["CONSUMER_KEY"],
    consumer_secret=os.environ["CONSUMER_SECRET"],
    access_token_key=os.environ["ACCESS_TOKEN_KEY"],
    access_token_secret=os.environ["ACCESS_TOKEN_SECRET"]
)

# V2
client = tweepy.Client(bearer_token=os.environ['V2_API_BEARER_TOKEN'],
   consumer_key=os.environ['V2_API_KEY'],
   consumer_secret=os.environ['V2_API_SECRET'],
   access_token=os.environ['V2_ACCESS_TOKEN'],
   access_token_secret=os.environ['V2_ACCESS_TOKEN_SECRET']
)


元々clientの生成は独立した処理になってたので、上記部分の修正で済んだ。
修正後、元気に動いてることを確認できたので完了。