最近、Twitter のログイン、ツイート機能などを利用できる SDK、TwitterKit を触る機会があったのですが、
つい最近まで問題なく動作していたコードが突然エラーになっていたので、その解決方法をメモしておきます
#開発環境
Swift: 4.0.3
Xcode: 9.2
iOS: 11.2
TwitterKit
公式のSDKで、自身が開発したアプリ内で Twitter のログイン、ツイート機能などを実装するために使用
詳しい TwitterKit を用いたログイン、ツイート機能などの実装方法は後述の参考サイトをご参照ください
※TwitterKit は2018年10月31日をもってサポート終了予定のようです
Twitter Kit SDK のサポート終了のお知らせ
#今回怒られたエラー内容
TwitterKit のが提供している以下のコードから生成できるログインボタンをタップした際、
let loginButton = TWTRLogInButton(logInCompletion: { session, error in
// 何らかの処理
})
loginButton.center = self.view.center
self.view.addSubview(loginButton)
以下のようなログが出力され、ログイン画面に遷移できませんでした
Callback URL not approved for this client application.
Approved callback URLs can be adjusted in your application settings
コールバック URL が承認されていないよって怒られました
ついこの間まで問題なく使用できていたのに、、、
#解決方法
2018年06月12日に認証周りの仕様変更が行われたようで、
連携アプリの設定画面で、call back URL を設定しなくてはならなくなったようです
連携アプリの設定画面を開き、Settings タブから Callbacks URLs を設定します
この時、設定するフォーマットは twitterkit-{連携アプリの Consumer Key}://
とします
ちなみに、連携アプリの Consumer Key は、Keys and Access Tokens タブから確認できます
#参考させていただいたサイト
[iOS 11] Social.framework廃止に伴い、アプリにTwitter機能を実装する方法