Author: Yai_np
「LINE Login」はOAuth 2.0を利用したユーザー管理サービスです。
LINEのアカウントを持つユーザーが簡単に他のサービスと繋がる事ができます
Delphi/C++BuilderではTRESTClient + TRESTRequest + TOAuth2Authenticatorを使えばOAuth 2.0が利用できます
OAuth 2.0の詳しい内容は下記のURLを参照してください。
https://openid-foundation-japan.github.io
[OAuth 2.0 仕組み]
Authorization codeを受けとって特定のエンドポイントに返す事でAccess Tokenを取得できます。
取得したAccess Tokenを使ってAPIサービスが利用できるようになります。
LINE Loginの場合profileを取得するAPIサービスです
[LINE Loginを利用するメリット]
LINE Login機能をサービスに組み込むことにより、ユーザーがLINEで簡単にサービスに
ログインすることが可能となります。
ログインしたユーザーから「表示名」、「プロフィール画像」と「ひとこと」を取得することができるため、
ユーザーに登録していただく作業が必要なくなります。
[LINE Login 企業登録]
LINE Loginを使うには、LINE Business Center( https://business.line.me/ )で登録が必要です。
登録後アカウントを作成します
[認証画面からのコールバックURLの指定が必須]
作成されたアカウントのChannel ID、Channel Secretが必要です。
[Delphi / C++Builder から接続]
新規プロジェクトを作成しフォーム上にTWebBrowser, TRESTClient,TRESTRequest,TRESTResponse, TOAuth2Authenticatorを配置しました。
上絵のように、Channel ID = ClientID、Channel Secret=ClientSecretに設定。
RedirectionEndpointにはコールバックで設定したURLが必要です。
[C++Builderで実装]
developers.line.me の仕様にしたがってwebloginにTWebBrowser側で接続します
ログイン画面 ユーザーID,パスワード入力後 URLがリダイレクトされる
WebBrowser1->OnDidFinishLoadイベントが呼ばれるのでそこで下記の処理を行う
- OAuth2Authenticator1->AuthCode//にコードを入れる
- OAuth2Authenticator1->ChangeAuthCodeToAccesToken()//実行する。
- OAuth2Authenticator1->AccessToken//ここにAccessToken入る
- AccessTokenを使ってTRESTClient,TRESTRequestでLINEのprofileを取得
JSONフォーマットでLINEのユーザープロファイル情報が取得できます。
テストした内容はLINEですがOAuth 2.0を使う方法なのでFacebookやGoogle+, Yahoo ID, dアカウントなどでも応用できます。