サイトアイコン Embarcadero RAD Studio, Delphi, & C++Builder Blogs

OAuth 2.0「LINE Login」TOAuth2Authenticatorを使った接続方法[JAPAN]

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側で接続します

[crayon-6763961c5d593268011513/]

 

 

ログイン画面 ユーザーID,パスワード入力後 URLがリダイレクトされる

WebBrowser1->OnDidFinishLoadイベントが呼ばれるのでそこで下記の処理を行う

[crayon-6763961c5d599118229616/]

 

 

  1. OAuth2Authenticator1->AuthCode//にコードを入れる
  2. OAuth2Authenticator1->ChangeAuthCodeToAccesToken()//実行する。
  3. OAuth2Authenticator1->AccessToken//ここにAccessToken入る
  4. AccessTokenを使ってTRESTClient,TRESTRequestでLINEのprofileを取得

 

 JSONフォーマットでLINEのユーザープロファイル情報が取得できます。

テストした内容はLINEですがOAuth 2.0を使う方法なのでFacebookやGoogle+, Yahoo ID, dアカウントなどでも応用できます。

 

モバイルバージョンを終了