【iOS】Twitter認証をFabricで超簡単に!
つみきでアプリエンジニアをしている野田です。
ちょっと前にTwitterからモバイルアプリの開発プラットフォームFabricが発表されました。
Fabricは主に以下の機能をサポートしています。
- 障害報告(Crashlytics)
- 利用者を増やす、収益化(MoPub)
- ユーザー認証(Twitter)
またこれらの機能を、アプリ開発者が簡単に利用できるようにも設計されています。
自分達がFabricを導入した理由は、CrashlyticsがFabricに統合されたためでした。
その際、認証周りもついでにFabricで実装したわけですが、手順に従ってわずか数行のコードを書くだけで実装できました。
そこで今回は、その実装方法を紹介したいと思います。
Fabric SDKの導入
まずは公式サイトからSDKを取得します。登録がまだの人はユーザー登録しちゃいます。Crashlyticsですでにアカウントを作っていた方はそこからアップグレードすることも可能です。
サインインしたらIDEセレクトからXcodeを選択して、SDKを取得します。
取得したSDKをインストールし、Fabricアプリを起動します。以下の画面がでてくるので登録したアカウントでサインインします。
次にXcodeのプロジェクト一覧がでるので、連携したいXcodeのプロジェクトを選択します。ワークスペースの場合は選択したあとにプロジェクトが表示されるのでそこで該当のプロジェクトを選択します。
するとインストールするキットを選択する画面が出てきます。今回は認証なのでTwitterを選択します。
・次に、XcodeのRun Scriptに追加してくれというメッセージがでるので、該当プロジェクトのRun Scriptに記載してあるコマンドを追加します。脇にあるCopyを選択すればペーストボードにコピーしてくれるので便利です。追加したあとにビルドが通れば勝手にFabricアプリが次のフローに進んでくれます。
・SDKキットをインストールしてくれと言われるので揺れているアイコン(画像ではわかりにくいですが、真ん中にでかでかと表示されているアイコンです)をそのままドラッグして該当プロジェクトにいれます。
これで導入は完了です。
次は実際にTwitterログイン機能を実装してみましょう。
Twitterログインの実装
さきほどの画面からそのまま遷移している場合は、どの機能を導入するか選択画面が表示されるので、「Log in with Twitter」を選択します。一度閉じてしまった場合にももう一度Twitterを選択し、ビルドの確認をすれば同じものが表示されると思います。
導入するコードが表示されるのでそれ通りに実装します。Objective-C,Swift両方ともサンプルコードが記載されていて至れり尽くせりです。
最後に、ログインボタンを設置したいViewControllerにサンプルのように設置すると完了です。
設置した後に、次へを選択すると正しく実装できているか確認待ちの画面が実装されるのでプロジェクトを実行しましょう。無事に実行できれば右下のインジケータの部分がDoneボタンに変更するので実装完了です。
実際にプロジェクトを実行したら該当のViewControllerに以下のような画面が表示されています。
これだけでTwitterボタンの設置からログインまでを世話してくれます。
あとはログイン成功後にユーザー名など必要な情報を取得することができます。
さらに便利なのはこれだけのコードを追加するだけで、iOS端末でTwitter連携していたらそちらから認証し(複数連携してればアクションシートで選択画面が表示されます)、なければモーダルでWebViewが表示されそこで認証する事ができます。
カスタムログイン
先ほどの方法はログインボタンを作ってくれて便利ですが、たとえばTwitterログインをカスタムで作りたい時とか、あるアクションの実行後にTwitterログインをしたい場合があると思います。そんな時はログイン部分だけのメソッドが用意されているのでそちらを利用します。
import UIKit
import TwitterKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func pushLoginButton(sender: UIButton) {
Twitter.sharedInstance().logInWithCompletion {
(session, error) -> Void in
if (session != nil) {
println("signed in user name \(session.userName)");
} else {
println("Error:\(error.localizedDescription)");
}
}
}
}
上記のコードはストーリーボードで追加したボタンを押した際にTwitterのログイン処理を行うメソッドです。先ほどのログインボタン付きのコードとほぼ同じ感覚で実装することができます。
まとめ
Fabricの導入とTwitterログインについて簡単に説明しました。
以前に比べ超簡単でシンプルにTwitterログインを実装することができるようになりました。他にもクラッシュレポート、行動分析などFabricを使えば簡単に実装することができるので積極的に取り入れていいSDKではないかと思います。
他にも、Twitter APIやTwitterで取得した画面の表示などもサポートしてくれているのでその辺りを使ったTwitter連携アプリを作ってみても面白いかもしれません!