Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
C++Delphi

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

 

 

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

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

 

 

  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アカウントなどでも応用できます。

 

Kai 1.1 Now Available! Kai 1.1 Now Available! What's Coming in RAD Studio 13.2 Florence

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.

Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES