Twitter
Twitter4J
OAuth認証
CoreTweet

Twitterクライアントを作ろうとして認証で詰まった話

More than 1 year has passed since last update.

ちょっとしたツイッタークライアントをJavaで作ろうと思い立って、Twitter4jというライブラリを導入して開発を進めたところ、認証がうまく行かずエラーが出たので、その時の解決方法のメモ書きを残しておきます。また、同様のエラーがC#のライブラリCoreTweetでも発生し、同様の解決方法で解消できたので書いておきます。


エラー発生時

Twitter4j・CoreTweetどちらにおいてもOAuth認証時にエラーが発生。

Consumer KeyとConsumer Secretはソース内で指定し、PINコードを入力し認証する方式で記述していました。


解決方法

Twitter Application Management

から認証のうまく行っていないアプリケーションを選択。

Keys and Access Tokensのタブを開くとConsumer KeyやConsumer Secretが表示されている画面が表示されます。

keysAndAccessTokens.PNG

下の方に表示されているRegenerate Consumer Key and Secretを選択し(画像内青矢印)、Consumer KeyとConsumer Secretを再生成します。

このとき再生成したKeyがきちんと動いているか(おそらく)確認するための、右上に存在するTest OAuth(画像内緑矢印)をクリックしたほうが良いかもしれません。

その後アプリケーション内で用いていた古いConsumer KeyとConsumer Secretを新たに生成したものに書き換えたところ、認証に成功しツイートの投稿やツイートの取得をすることができるようになりました。


ソース内を見直しても他のサイトと同様の書き方をしているし、なぜ認証できないんだと思ったらTwitter側のConsumer KeyとConsumer Secretがちゃんと動いていなかった、という結果でした。(もしかしたら違うのかもしれないけど、自分の感覚的にはそう。)

Twitterクライアント開発については沢山わかりやすい記事が転がっているのでそちらのほうで。

同様の問題で困っている人の少しでも参考になれば幸いです。