日本人なら誰しもが使っているLINEを自分のアプリに組み込めばLINE経由でログインできる。
今回はSwift3でLINEログインをする方法を解説する。
Contents [hide]
LINE Business Centerでアプリ登録
まずはLINE Business Centerでビジネスアカウントを作成しよう。
アカウント作成の際の指示に従い、チャンネルも登録する。その際、LINEログインを組み込みたいアプリのBundle IDも設定しておくことも忘れずに!
LINE SDKのInstall
LINE SDK をインストールしよう。Podfileに以下を記述しよう。
pod 'LineSDK, '~> 4.0.2'
記述したら忘れずに pod update か pod install を実行する。
※SDKのバージョンはここ参考 → https://developers.line.me/ios/development-with-sdk-v2#cocoapods
もちろん直接SDKを落としてきてプロジェクトに加えてもいい。その場合は上記ページのどこかから落としてほしい。
プロジェクト設定
frameworkのリンク
アプリのプロジェクト設定を開き、 Build Phases > Link Binary With Libraries へ。ここに、以下の3つのframeworkを加える。
- CoreTelephony.framework
- Security.framework
- LineSDK.framework
LineSDKだけ、この設定画面の +ボタン を押し、 Add Otherを選んで直接frameworkを選択する。
リンカーフラグの追加
Build Settings > Other Linker Flags に -ObjC フラグを追加する。
Keychainの設定
Capabilities > Keychain Sharing を開き、Keychain Groupsを設定する。詳しい設定方法はこちら→ http://qiita.com/itoz/items/cac060f940e67d97ab9d
info.plistの設定
LINE BUSINESS CENTERで取得したチャンネルIDを持ってきて、以下の設定をinfo.plistへ追加する。※1234567890を自分のチャンネルIDで置き換える。
こちらの設定も追加する。
AppDelegate
LINEログイン後、LINEからアプリが呼ばれるのでハンドルする処理を書く。といっても一行だけというカンタン実装。
ログイン処理
いよいよログイン処理を実装していく。まずはログイン処理の結果を受け取るdelegate LineSDKLoginDelegate を実装する。その名のとおりLINEログインのdelegateで、ログイン成功やキャンセルされた時に呼ばれる。素直な名前で非常によき。
例えば、LoginViewControllerなるクラスでこのdelegateを実装する場合はこうなる。
キャンセルやエラーでログインできなかった時は上のコードの 1. にやってくる。対して、LINEログインに成功した時は 2. に来るためログイン処理を進めよう。accessTokenやuserName, userIdの抽出方法も書いたけれど必要なければ使わなくていい。
LineSDKLoginDelegateを実装したらログイン処理を書こう。とっても楽ちんに出来る。LoginViewControllerのログインを実行する箇所で以下を呼べばそれでいい。
TwitterやFacebookなど他のソーシャルログイン手段と比べるとLINEログインが一番カンタンに実装できる。delegateで実装できる分、コードの綺麗さも一番だ。