【TwitterAPI】エラー「Read-only application cannot POST.」の対処法

公開日:
更新日:
カテゴリー: TwitterAPI

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」にいきます。

Twitter Developers→Manage Your Apps

2.該当のアプリケーションをクリックしてそのアプリケーションの設定画面にいきます。

「Twitter Developers」で作成したアプリケーション

3.画面上部の「Permissions」をクリックし、下の画面のように「Read and Write」または「Read, Write and Access direct messages」に権限を変更して「Update Settings」をクリックします。

「Twitter Developers」で作成したアプリケーションの権限変更

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」をクリックします。

「Twitter Developers」で作成したアプリケーションのアクセストークンの生成

7.そして画面下の「Your Access Token」のとこまでいき、「Regenerate My Access Token and Token Secret」をクリックします。

「Twitter Developers」で作成したアプリケーションのアクセストークンの生成 その2

8.そしたらアクセストークンが再生成されるので、それを該当プログラムに記述し直します。

 

以上でエラー「Read-only application cannot POST.」に対処できるはずです。

 

頑張って書いたのでちょろっと読んでほしい!

 

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント