【TwitterAPI】エラー「Read-only application cannot POST.」の対処法
TwitterAPIの「update.json」を使って私のTwitterにツイートしようとした時、次のようなエラーがでました。
Array
(
[request] => /1.1/statuses/update.json
[error] => Read-only application cannot POST.
)
ここではこのエラーの対処法を説明しています。
Read-only application cannot POST.
このエラーの原因ですが、読んで字のごとく「読み取り専用のアプリケーションではPOST送信できない」ということです。
これはTwitter Developersでアプリケーションを作成した時に、そのアプリケーションの権限を「Read only」にしているためです。
というのも「update.json」を使ってツイートする場合、それは「書き込み」に該当するので「Read-only」の権限では行えずエラーとなります。
そのためアプリケーションの権限を「Read and Write」もしくは「Read, Write and Access direct messages」に変更する必要があります。
アプリケーションの権限の変更
1.自分のアカウントのTwitterにログインした状態でTwitter Developersにいき画面下の「Manage Your Apps」にいきます。
2.該当のアプリケーションをクリックしてそのアプリケーションの設定画面にいきます。
3.画面上部の「Permissions」をクリックし、下の画面のように「Read and Write」または「Read, Write and Access direct messages」に権限を変更して「Update Settings」をクリックします。
4.すると画面上部に下のようなメッセージが出ます
The permission settings have been successfully updated.
It may take a moment for the changes to reflect.
日本語訳
権限設定の変更に成功しました。
設定変更には時間がかかる場合があります。
5.次にアクセストークンの再生成を行います。
「設定変更には時間がかかる」ということを鵜呑みにして私はしばらく待っていたのですが、ずっとエラーが解消されることはありませんでした。
そのため何度も権限設定をしたのですが、ふと下の方に表示されていた文章を見るとこんなことが書かれていました。
Changes to the application permission model will only reflect in access tokens obtained after the permission model change is saved. You will need to re-negotiate existing access tokens to alter the permission level associated with each of your application's users.
日本語訳
アプリケーションの権限変更は、権限変更が保存された後に取得したアクセストークンに反映されます。
あなたは、あなたのアプリケーションユーザーのそれぞれに関連付けられた権限レベルを変更するために、今のアクセストークンを変更する必要があります。
ということで、どうやらアクセストークンの再生成が必要なようです。
6.ということで、アクセストークンを再生成させるために画面上の「Keys and Access Tokens」をクリックします。
7.そして画面下の「Your Access Token」のとこまでいき、「Regenerate My Access Token and Token Secret」をクリックします。
8.そしたらアクセストークンが再生成されるので、それを該当プログラムに記述し直します。
以上でエラー「Read-only application cannot POST.」に対処できるはずです。
あわせて読んでほしい!
1:通りすがりの人:2021/08/28 15:15:41
まさにこのエラーで引っかかっていたので助かりました!
permission変更後に再度トークンを取得する必要があったとは。