背景
もうかれこれ10年*1開発が続いているChrome拡張*2があり、このCI/CDの結果報告にTwitterのAPIを用いている。また、ユーザにとっても、Chrome拡張上でTwitter認証を行い画像付きツイートを行える機能を提供している。
今回、この機能が以下のエラーを吐いて失敗している。どうやら、Twitter API の「アクセスレベル」関係でコケているようだ。
Web Store TEST · KanCraft/kanColleWidget@0588aa7 · GitHub
Error: [ { message: 'You currently have access to a subset of Twitter API v2 endpoints and limited v1.1 endpoints (e.g. media post, oauth) only. If you need access to this endpoint, you may need a different access level. You can learn more here: https://developer.twitter.com/en/portal/product', code: 453 } ]
調査
- エラーメッセージからは、v1.1でも部分的にまだ利用可能のような雰囲気を感じるが、明らかにv1.1を使っているこのworkflowはコケている
- エラーメッセージにある https://developer.twitter.com/en/portal/product は、単に開発者ポータルへ飛ばされるだけ
- python - 403 Forbidden 453 - You currently have access to a subset of Twitter API v2 endpoints and limited v1.1 endpoints only - Stack Overflow
- 開発者のプラン(課金)による、という指摘がある
- Twitter API Documentation | Docs | Twitter Developer Platform
→
- 認証は動いている模様。つまり検索などが走りすぎており、止まっているのだと思われる
ビンゴ
問題の整理
- まず、Twitter API v2 に対応したいのは山々だが、機能を回復させるのが先決
- v2を利用したところで、上記に言われるように、無課金では動かんだろうし
- また、Chrome拡張側でTwitterAPIがコケたときに、他の機能も利用できない状態になっているのはけしからん(下記画像参照)
対応
- TwitterのAPIがコケている状態で、他の機能を心中させないよう修正
- Twitter API へ、最低限の課金をしようと思ったが、$100/monthという値段を見てビビった
- ので、定期的に検索をかけて、どこかにデータを蓄積し、厳密にはリアルタイムではないがこれを配信するように修正したい
修正
(1)
(2) 別のrepositoryを立てて、GitHub Actionsで4時間おきとかにTwitter検索叩いて、結果をrepositoryにcommitするようにすればよかろう。後日やる
DRYな備忘録として