OAuthSwiftでtwitterログイン認証を実装する

iOStwitter認証を実装する際によく利用されていた、公式ライブラリであるTwitterKitがサポート終了していたので、代替方法としてOAuthSwifttwitterのログイン認証を実装した。その際の手順をメモ。

準備

実装

twitterログイン認証には、OAuth 1aを利用する必要がある。 OAuthSwiftにデモ実装の記述があるので、それをコピペすれば動いた。

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
           # 失敗した時の処理を記述
    }
    )
}