[iOS] SwiftでLINEログイン・認証する方法

with コメントはまだありません

日本人なら誰しもが使っているLINEを自分のアプリに組み込めばLINE経由でログインできる。

今回はSwift3でLINEログインをする方法を解説する。

 

LINE Business Centerでアプリ登録

まずは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を加える。

  1. CoreTelephony.framework
  2. Security.framework
  3. 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で実装できる分、コードの綺麗さも一番だ。