こんにちは!スィンです。
TwitterKitを使ったTwitterアプリ「Txiicha for Twitter」にて、Twitterログインボタン押下時に「TwitterAuthException: Failed to get request token」が発生したので対応しました。
TwitterKitを使わずに認証している場合
Callback URL not approved for this client application. Approved callback URLs can be adjusted in your application settings
というメッセージが含まれた Exception を受け取っているかもしれません。
テスト
対応する前に、まずは開発環境で現象を確認するなど、テスト項目を考えました。
- ログインボタン押下時にエラーが発生し、ログインできないこと
- Twitter公式アプリ未インストール状態にて、ログインボタン押下時にエラーが発生せずログインできること
- Twitter公式アプリインストール済み状態にて、ログインボタン押下時にエラーが発生せずログインできること
なんでこうなった?
これは、 2018年6月12日から、Twitterアプリ管理画面の「Callback URLs」(ホワイトリスト)と、アプリ側の request_token 要求時に指定するコールバックURLを一致させないといけなくなったことによるものらしいです。今までは一致してなくて適当でよかったのが、厳格になったみたいですね。
ログインできる人とできない人がいるのは何故?
TwitterKitを利用している場合、Twitter公式アプリがインストールされているとこの現象は発生しないようです。公式アプリをアンインストールすると、現象が確認できました。
対応方法
Twitterの Application Management 画面で、対象のアプリをクリックしてアプリ管理画面を開きます。
「Settings」タブを開き、Callback URLs を「twittersdk://」に変更して「Update Settings」ボタンを押します。
以上です。
ソースコードなど、アプリ側の変更は不要です。
参考にさせていただいたサイト
- Android app Twitter Login failed(not show webView login screen) if twitter app not installed
- swift4: Callback URL not approved for this client application
最後に
Twitterさんの仕様変更とかに振り回される開発は楽しくなかったのですが、最近少しだけ楽しめるようになりました。
この記事が役に立ったら、下の「いいね」ボタンを押してくれると嬉しいですー!ではまた会いましょう。スィンでした。
弊社では、「さらに高みを目指したいエンジニア」を育てる環境を用意しています。
株式会社 #sinProject CEO/CTO
Twitterアプリ1位 #Tweecha2 企画制作
サービス・システム設計開発、コンサルタント
#sinPro式学習 #Svelte #TypeScript #Flutter #Dart #Java #HTML #CSS
#kimurakan ピアノ弾き語り