androidでtwitter4jを使っていて、以下のエラーが出て投稿できないときがあった
認証は正常にできるが、投稿する時に例外が発生して以下のようになる
07-30 15:44:45.737 21142-21406/kazuma.saitou.mokou W/System.err: 401:Authentication credentials (https://dev.twitter.com/pages/auth) were missing or incorrect. Ensure that you have set valid consumer key/secret, access token/secret, and the system clock is in sync.
07-30 15:44:45.737 21142-21406/kazuma.saitou.mokou W/System.err: {"request":"\/1.1\/statuses\/update_with_media.json","error":"Read-only application cannot POST."}
07-30 15:44:45.737 21142-21406/kazuma.saitou.mokou W/System.err: Relevant discussions can be found on the Internet at:
07-30 15:44:45.737 21142-21406/kazuma.saitou.mokou W/System.err: http://www.google.co.jp/search?q=2fc5b7cb or
07-30 15:44:45.737 21142-21406/kazuma.saitou.mokou W/System.err: http://www.google.co.jp/search?q=0f1343da
07-30 15:44:45.737 21142-21406/kazuma.saitou.mokou W/System.err: TwitterException{exceptionCode=[2fc5b7cb-0f1343da], statusCode=401, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=4.0.4}
07-30 15:44:45.737 21142-21406/kazuma.saitou.mokou W/System.err: [Ljava.lang.StackTraceElement;@1359e913
コードを追いかけてみると、トークンやトークンシークレットは正しい値でリクエストを投げている
アプリ管理ページ
https://apps.twitter.com/app/ で TestOAuthを試してみると、なんか違うトークンとシークレットでテストしている
そこで、管理ページからトークンとシークレットを再生成(Regenerate)。
アプリも一度削除して再度実行
するとできた
どうやら、アプリ管理ページから作成するとき、間違えて違うアカウントで登録したので
別のアカウントでログインして再度登録したのだが
このとき、古い方のトークン情報が残っているかなんかしたのだろう
ツイッター側のサイトがどういう作りをしているのか知らないが…
PR