sakaharaのブログ

アプリ開発に関する話や日々の出来事など

iOSでFacebookのログイン方法について整理してみた

久しぶりにiOS向けFacebook SDKを使う機会があったのですが、ログイン方法が本当に多様になってたのでざっくり整理しました。 種類が増えててドキュメントちゃんと見ないと混乱します・・・。 ということで内容の整理兼ねてのメモとして書いています。

ざっくり整理してるだけなのでもっと詳細を知りたい方は公式ドキュメントを見てください。

https://developers.facebook.com/docs/facebook-login/ios/v2.0

  • FBLoginView

これは知らなくて驚いたのですが、専用のログインボタンができたようです。 ドキュメント見る限りかなり簡単に使えそうです。

  • Facebookネイティブアプリ・ログインダイアログ

これはFacebookアプリをインストールしている場合に使えます。 アプリにログイン済みであれば認証は必要ないのでユーザーの負荷は少ない言えます。 欠点としてはiOS6以上でアプリをインストール済みでないと使えないことです。

  • iOSログインダイアログ

iOS6から追加されたOSに組み込まれたFacebookのログイン形式です。 すでにログイン済であればログインフローをユーザーが意識する必要がないので一番理想的な方法だと思います。 欠点としてはユーザーがログインしていない場合、設定画面からログインしてもらうよう誘導する必要があります。

  • Facebookネイティブアプリ・Webベースログインダイアログ

古いバージョンのFacebookアプリをインストールしている場合に使えます。 ネイティブアプリのログイン画面より遅いの欠点です。

  • モバイルSafari・ログインダイアログ

Facebookネイティブアプリをインストールしていない場合に使えます。 欠点としてSafariへの切替が発生や、ネイティブアプリと比較して速度が遅い点などがあげられます。

  • WebViewログインダイアログ

ログインダイアログを表示するコードを毎回直接書いて表示します。 ログインフローで毎回ユーザーがユーザーID、パスワードを入力する必要があります。 また欠点としてネイティブアプリと比較して速度が遅い点やがあげられます。

ログインするためのサンプルでも書こうと思いましたが、すでによいものがあるのでそちらを 見た方が早いです。

http://github.com/fbsamples/ios-howtos

とこんな感じでログイン一つとっても多種多様になってました。 ログインするプロセスというのはユーザーにとってとてもストレスがかかるところなので、 負担をなるべくかけないようにするための努力の後が伺えます。 しかし使う側はなんだか混乱してしまいますが・・・ある程度はSDKが自動で制御してくれるのでそれらを踏まえて使うのがよいです。