Twitter APIとの連携で、Twitter Application Managementでトークンを発行して自分のアプリケーションで利用することは多いと思う。
私もTwitter APIを利用してTwitterのBotを作っていたのですが、アプリケーション環境で突如Twitterとの接続でエラーが出るようになった。
Spring Boot エラー内容
2018-02-11T20:14:14.911250+00:00 app[web.1]: org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://api.twitter.com/1.1/statuses/update.json": cannot retry due to server authentication, in streaming mode; nested exception is java.net.HttpRetryException: cannot retry due to server authentication, in streaming mode
エラー内容でググってみたら、 callbackUrl
を設定したら直るとあったので試してみたがダメ…。
解決方法
色々見てる内に、Twitter Application Managementの Keys and Access Tokens
画面でアクセストークンが消えてることに気がついた。
再度取得し直して、アプリケーション上のトークンを更新してあげたらちゃんと動くようになった。
アクセストークンの再追加時にエラーメッセージで「既に存在するぞ!!」って何故か怒られるが、新しいアクセストークンが発行される。 以前使用していたアクセストークンとは別のものになっているため、アプリケーションで使用していたトークンの更新を忘れないようにすること。
もし同じような状況になったら、アクセストークンが消えていないか確認してみてください。