Twitter4JでCallback URLを動的に変更する
Twitter4Jで、Twitterアプリケーションの登録時に設定するCallback URLを動的に変更する方法です。
ひとつのTwitterアプリケーションで複数の機能を提供したり、状況によってCallback URLを変更したい時は、一度Callback URLに登録したURLに遷移した後にセッション情報など飛び先を判定してリダイレクトする方法がありますが、ここでは直接Callback URLを変更する方法を説明しています。
Twitterアプリケーションで普通に使う事もできますし、Callback URLをlocalhost(http://localhost/...)に設定することで、開発中などに公開サーバーにCallbackしないで、localhost上のWEBサーバーを呼び出すことが出来ます。この方法であればTwitterの設定を変更する必要がないため、公開中のTwitterアプリケーションに影響を与えないで、Callback URLを変更することができます。
このURLは、下の「連携アプリを承認する」が押された後に遷移するURLです。普通は、承認されたアプリの画面に遷移します。
ひとつのTwitterアプリケーションで複数の機能を提供したり、状況によってCallback URLを変更したい時は、一度Callback URLに登録したURLに遷移した後にセッション情報など飛び先を判定してリダイレクトする方法がありますが、ここでは直接Callback URLを変更する方法を説明しています。
Twitterアプリケーションで普通に使う事もできますし、Callback URLをlocalhost(http://localhost/...)に設定することで、開発中などに公開サーバーにCallbackしないで、localhost上のWEBサーバーを呼び出すことが出来ます。この方法であればTwitterの設定を変更する必要がないため、公開中のTwitterアプリケーションに影響を与えないで、Callback URLを変更することができます。
Callback URLとは?
Twitterアプリケーションを登録するときに、Callback URLを設定します。Callback URL |
Twitterの連携アプリの承認画面 |
Callback URLを動的に変更するには?
Twitter REST APIの[POST oauth/request_token]のoauth_callbackにCallback先にしたいURLを設定するだけです。
Twitter4Jでは、getOAuthRequestToken()の引数でURLを指定します。
twitter.getOAuthRequestToken("https://localhost:8080/callback");
今後仕様が変わる可能性もありますが、2018/03/21時点では登録したCallback URLと全く関係ないURL(ドメインが違う、localhostだ等)でも問題ありません。