Twitter APIでRead-onlyと表示された時の対処法

Twitter APIでRead-onlyと表示された時の対処法

あこ
Twitter APIでいいね!しようと思ったらエラーになったんだけど...
パパ
それはTwitter APIの設定の問題だね!
目次目次[閉じる]

自動投稿やいいねでエラーになる

Twitter APIを使ってツイートしたり、いいね!したときに以下のエラーが起きるときがあります。

Read-only application cannot POST.

実はTwitter APIの初期設定はツイートの読み取りのみになっています。

Twitterへの投稿やいいね!をAPIで行うためにはAPIの設定を変更する必要があります。

パパ
画像付きで丁寧に解説するよ!

APP permissionsを変更する

まず、以下のTwitter API Developer potalにアクセスします。

https://developer.twitter.com/en/portal/dashboard

「PROJECT APP」の歯車のマークをクリックします。

Developer Portalのダッシュボード画面

App permissionsの「Edit」をクリックします。

Dashbord PortalのApp permissionsの画面

Edit app permissionsの画面で、Twitter APIで使用する機能を選択します。

Edit app permissionsの選択画面

  • Read:ツイートやユーザ情報の読み取りのみ
  • Read and Write:Readの権限に加えて、ツイート投稿やいいね!、リツイートを可能にします。
  • Read and Write and Direct Messages:Read and Writeに加えてダイレクトメールを可能にします。

私は今回はいいね!をAPIから行いたいので、Read and Writeを選択します。

変更していいかどうかを聞かれるので、「YES」を選択します。

変更していいかの確認画面

これで設定は完了です。

アクセストークンを再生成する

APIの設定を実際に反映させるためには、アクセストークンを再生成する必要があります。

あこ
今まで使っていたアクセストークンでは古い設定になってしまうよ。

Developer Portalのダッシュボードに戻り、今度は鍵のマークをクリックします。

Developerダッシュボードのkeyの変更画面

Access Token and Secretの「Regenerate」をクリックします。

トークンの再生成の画面

Access TokenとAccess Tokenをコピーして「Yes, I saved them」をクリックします。

新しいトークンが生成された画面

ここでコピーしたアクセストークンとアクセストークンシークレットを使ってTwitter APIを使えば、いいね!やツイートができるようになります。