ソーシャルログインをiOSアプリで開発する方法【初心者も】

manablogさんに刺激を受けている僕ですが、先日こんなツイートをしました。今回はソーシャルログインのメリットとデメリット、それからソーシャルログインの実装方法をiphone/iosアプリ開発で行う方法として解説します。あらゆるアプリではほぼソーシャルログインが実装されていますよね。簡単ですし、初心者にもわかります。Swiftでの実装になりますが、SwiftについてはSwift案件で副業まとめで解説しています。

ソーシャルログインとは

まずソーシャルログインとは何かを解説します。ソーシャルログインとは、2000年あたりから流行り始めたSNSのアカウントを用いて簡単にログインする事ですね。これまではのログイン認証というのは、ほぼそれぞれのサイトやサービスごとにアカウントを登録作成してログインしていましたが、SNSの普及で多くの方々がソーシャルログインを利用して簡単にログインできるようになっていますね。

メリット

メリットはというと、ユーザとしてはアカウント作成の手間が省けるという事ですね。結果的に簡単にサービス利用が可能ですし、楽チンです。これはサービス運営側や斎藤ネイ側としては、ユーザ数が増える要因になるのでこれがビジネス側のメリットになりますね。ユーザ数は大事です。

デメリット

しかしながらメリットばかりではありません。手軽であるがゆえに、本来であれば会員登録の時にデータとして欲しかった情報を得られないままサイトやサービスの利用が進むということがデメリットです。

何かと言うと、例えば販売促進用に好きなコスメとか肌トラブルの状況とか簡単にアカウント登録の時に欲しかったとします。これがソーシャルログインでは、既存のSNSアカウントで済むのでデータとして得られません。

しかしながら、後からいくらでもデータを入力してもらえるので、まあ大きなデメリットではないのかなと思いますね。

ソーシャルログインの仕組み

次にそんな便利なソーシャルログインの仕組みをfirebaseで開発する場合を想定して解説します。すっごいざっくり解説すると、oauthという権限認証のアプリケーションを利用して、セキュリティを担保した上で認証を行います。

ざっくり認証の時には、idとpasswordを使いながら、その時に認証IDなど一時的なトークンを発行して認証を行うという仕組みになっていますね。

ソーシャルログインの利用状況

ではそんなソーシャルログインが今どれくらい利用されているのかを考えてみたいと思います。素晴らしい技術も利用されていないのであれば宝の持ち腐れです。色々なデータをみてみましょう。引用は、https://socialplus.jp/report/2019からです。

まずアカウントで言うとLINEが多い結果になっていますね。

何故なのか深掘りすると、ソーシャルログインはほぼモバイルが占めていて90%ですね。

加えてデバイス別で言うと、PCはyahooが多いですね。

スマホではLINEが多いですね。ほぼスマホなのでLINEが多い結果になることがわかりますね。これ何故かと言うとやはりスマホで会員登録もログインも面倒ですよね。なのでこの手軽さが受けているのかと思いますね。

ソーシャルログインが向いているサービスやサイト

でここまでを読むと、ソーシャルログインが向いているサービスやサイトがわかりますよね。では、それぞれを解説したいと思います。もし向いているなと思えば、ソーシャルログインの導入を考えてみましょう。

向いているサービスやサイト

ソーシャルログインが向いているサービスやサイトは、スマホアプリやスマホでの利用が多いだろうと思われるサービスやサイトですね。また、そこまでがっつりユーザのセグメントで何か販売促進をする予定がなければソーシャルログインがベストかと思います。

向いていないサービスやサイト

逆にPCでの利用が多そうな、ちゃんと大きい画面で比較したいなどの高価な物を販売したりするサイトはほぼPCですし、ユーザ登録を個別にアカウントを持っておくべきであれば、ソーシャルログインではなくて個別の固有アカウントで認証できるように登録させたほうがいいですね。

ソーシャルログイン実装必要な費用コスト

ソーシャルログイン便利じゃん!導入しよう!いくら?となった場合には、もし外注するのであれば初期実装多分10万円くらいともしかしたら保守メンテナンスと称して月額数万円取られるかもしれないです。

正直自分で独学して実装したほうが圧倒的にいいですよ。自分で実装すれば正直1週間もあればできるんじゃないかなと思いますね。そしたらまあお金かからないじゃないですか?外注は出来るだけ避けたほうがいいです。お金あれば別ですけどね。このようにITスキルは非常に稼げる時代です。ITで稼ぐには、IT土日副業まとめで解説しています。

ソーシャルログインをiOS/iphoneアプリで開発する方法

ではソーシャルログインを自分で独学してios/iphoneアプリ向けに開発する方法を解説しましょう。ここでは、代表的なソーシャルログインとして、Googleログイン、Facebookログイン、Twitterログインを解説しますね。またios/iphoneアプリ開発したい場合は、ios/iphoneアプリ開発の初心者向け作り方で解説していますよ。

Googleログイン

まずはGoogleログインですね。googleアカウントは誰でも持っているので代表的です。では早速Googleログインでのソーシャルログインを実装する方法をみていきましょう。まずこのようにpodにインクルードします。

そしてアプリを Firebase プロジェクトに接続していないのであれば、Firebase コンソールで接続します。そして、Firebase コンソールで Google ログインを有効にして起きます。

  1. Firebase コンソールで auth セクションを開く
  2. ログイン方法タブで Google を有効にして、保存 をクリック

次に、Firebase SDK と Google ログイン SDK のヘッダーファイルをアプリにインポートしていきます。

そしてgoogleログインを実装していきます。ここからがソーシャルログインの実装方法ですね。

Xcode プロジェクトにカスタム URL スキームを追加します。
①プロジェクトの設定を開きます(左側のツリービューでプロジェクト名をダブルクリックします)。[ターゲット] セクションでアプリを選択し、[情報] タブを開いて [URL タイプ] セクションを展開します。
②[+] ボタンをクリックし、反転クライアント ID の URL スキームを追加します。この値を確認するには、GoogleService-Info.plist 構成ファイルを開き、REVERSED_CLIENT_ID キーを見つけます。見つかったキーの値をコピーし、設定ページの [URL スキーム] ボックスに貼り付けます。その他の入力欄は空白にしておきます。

完了すると、設定は次のようになります(ただし、値はアプリケーションによって異なります)。
引用:https://firebase.google.com/docs/auth/ios/google-signin

次に、アプリのデリゲートでGIDSignInDelegate プロトコルを実装することを宣言していきます。

そして、アプリのデリゲートのapplication:didFinishLaunchingWithOptions:メソッドで、FirebaseAppオブジェクトを設定してから、ログインのデリゲートを設定していきます。

次は、アプリのデリゲートにapplication:openURL:optionsメソッドを実装していきます。このメソッドはGIDSignInインスタンスのhandleURLメソッドを呼び出すことができますね。これによって、認証プロセスの最後にアプリが受け取る URL が正しく処理されることができます。

ちなみに、iOS 8 以前で実行されるアプリの場合ですと、サポートが終了したapplication:openURL:spurceApplication:annotation:メソッドも実装して起きましょう。

アプリのデリゲートで、ログイン プロセスを処理するGIDSignInDelegateプロトコルを実装するために次のメソッドを定義します。

次に、ログインビューのコントローラがGIDSignInUIDelegateプロトコルを実装することを宣言していきます。

次に、ビューコントローラで、viewDidLoadメソッドをオーバーライドしてGIDSignInオブジェクトのUIデリゲートを設定していきます。

最後は、GIDSignInButtonをストーリーボードまたは XIB ファイルに追加するか、プログラムによって初期化していきます。このボタンをストーリーボードまたは XIB ファイルに追加するには、ビューを追加して、そのカスタムクラスをGIDSignInButtonに設定します。
あとはFirebaseで認証するだけですね。signin:didSignInForUser:withError:メソッドで、Google ID トークンと Google アクセス トークンをGIDAuthenticationオブジェクトから取得して、Firebase 認証情報と交換します。

そしてFirebaseでの認証を行い終わりですね。

ちなみにログアウトは、こんな感じでsignOut:を呼び出します。

ちなみに、他のソーシャルログインでは、FacebookとTwitterがありますが、google認証の方が難しいのでこれができればできるかと思いますよ。

ソーシャルログイン以外のログイン認証の開発方法

ソーシャルログイン認証以外では、メールの認証とパスワード認証がありますね。これらは、一般的な認証方法でして、個別にサイトやサービスのアカウントを登録してもらえるので、リピートや販売促進に使えます。メール認証とかだと、メルマガを打てますよね。

まとめ

ではソーシャルログイン認証のまとめに入ります。今後もしアプリ開発で、ログイン認証を行いたい場合は参考にできるかと思います。また、これらができるだけでも部分的なプログラミング副業で稼げると思いますね。プログラミング副業では、プログラミング副業サイトおすすめ4選を見るといいですよ。

最新情報をチェックしよう!