OAuthSwiftでtwitterログイン認証を実装する
iOSでtwitter認証を実装する際によく利用されていた、公式ライブラリであるTwitterKitがサポート終了していたので、代替方法としてOAuthSwiftでtwitterのログイン認証を実装した。その際の手順をメモ。
準備
- ドキュメントに沿ってOAuthSwiftを入れる
- 今回はCarthage経由で入れた
- URL Schemesを設定する
- アプリ内WebViewで認証が終わった後に、指定されたURLでアプリに戻ってくるので、それをハンドリングする処理をAppDelegateに追加
実装
twitterログイン認証には、OAuth 1aを利用する必要がある。 OAuthSwiftにデモ実装の記述があるので、それをコピペすれば動いた。
最終的に私は以下のように実装。(ViewController内)
private lazy var oauthswift: OAuth1Swift = { return OAuth1Swift( consumerKey: "{ 自分のconsumerKeyを指定 }", consumerSecret: "{ 自分のconsumerSecretを指定 }", requestTokenUrl: "https://api.twitter.com/oauth/request_token", authorizeUrl: "https://api.twitter.com/oauth/authorize", accessTokenUrl: "https://api.twitter.com/oauth/access_token" ) }() # 事前にXibにボタンを追加、タップされた時にログイン処理を行うように @IBAction private func didTapTwitterLoginButton(_ sender: Any) { loginWithTwitter() } private func loginWithTwitter() { oauthswift.authorizeURLHandler = SafariURLHandler(viewController: self, oauthSwift: oauthswift) _ = oauthswift.authorize( withCallbackURL: URL(string: "oauth-swift://oauth-callback/twitter")!, success: { credential, response, parameters in # 成功した時の処理を記述 }, failure: { error in # 失敗した時の処理を記述 } ) }