[Alexa] LINEログインでAccount Linkingしてみた

2017.10.19

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

1 はじめに

Amazon Alexa(以下、Alexa)のスキルには、Account Linkingという機能があり、他サービスの機能を利用することができます。

参考
Amazon AlexaのAccount Linkingを使ってAmazon EchoからTwitterに書き込ませてみる
[Alexa] Account Linking を使用してスキルからFacebookに投稿してみました
[Alexa] Login with Amazon との Account Linking で名前を呼びかける挨拶とかメールを送信するスキルを作ってみました

Account Linkingは、OAuth2で利用可能ですが、今回は、 LINEログインで、これを試して見ました。

2 LINEログインにおけるチャンネルの作成

Account LinkingでLINEログインを使用するためには、そのEndpointとして、チャンネルを作成する必要があります。

チャンネルの作成手順は、以下のとおりです。

  • プロパイダの作成
  • チャンネルの作成

(1) プロパイダの作成

LINEログイン用のチャンネルは、プロパイダに紐づいているため、最初にプロパイダを作成する必要があります。

プロパイダを作成するために、LINE developersにアクセスしLINEアカウントでログインします。

001

ログインが完了したらプロパイダーを作成するを選択します。

002

プロパイダ名を指定して確認ボタンを押します。

003

確認で問題がなければ、作成は完了です。

004

(2) チャンネルの作成

LINE Developerのホーム画面からLINEログインを始めるを選択すると、チャンネル作成が始まります。

005

プロパイダーを選択し、次のページへ移動します。

006

アプリ名等を入力し確認に進みます。この際、WEBで使う[WEB] にチェックを入れておきます。

007

問題がなければ、作成は完了します。

008

チャンネルの基本設定のページを開くと、Channel ID及び、Channel Secretが確認できます。これらは、Account Linkingの設定で必要になるので、コピーしておきます。

009

最後に、アプリ設定を開いて、Callback URLを設定します。

010

このURLは、Account Linkingの設定画面のRedirect URLsに生成されているものを使用します。

011 012

3 Account Linkingの設定

Account Linkingの設定は以下のとおりです。

  • Authorization URL 「https://access.line.me/oauth2/v2.1/authorize」 (LINEログイン固定)
  • Client Id channel基本情報の「Channel ID」です。
  • Scope 「profile」
  • Authorization Grant Type 「Auth Code Grant」
  • Access Token URI 「https://api.line.me/oauth2/v2.1/token」 (LINEログイン固定)
  • Client Secret channel基本情報の「Channel Secret」です。
  • Client Authentication Scheme 「HTTP Basic (Recommended)」

※ scopeパラメータに指定できるスコープは以下のとおりです。

  • profile:ユーザーのプロフィール情報を取得する権限(必須)
  • openid:IDトークンを取得する権限

013

4 動作確認

Account Linkingが有効になっているスキルで、ユーザーがリンク操作を完了すると、スキルへのリクエストでアクセストークンが送られてくるようになります。 ここでは、適当なSkillをEndpointに設定し、Test画面でAlexaから送られて来たaccessTokenをコピーして、動作を確認してみます。

014

LINEのSocial APIでは、/profileでユーザープロフィールを取得する事ができます。

015

下記は、Alexaから送られてきたaccessTokenを使用して、ユーザープロフィールをリクエストしているようすです。無事、プロフィールが取得できることを確認できます。

$ curl -X GET -H 'Authorization: Bearer xxxxxxxxxxxxxxxx' https://api.line.me/v2/profile
{"userId":"U2XXXXXXXXXXXXXXXXXXX","displayName":"SIN","pictureUrl":"https://profile.line-scdn.net/ch/v2/p/u17f9c77f5a21bafbb22d4f6816209f0a/1349232576927"}

なお、Account Linkingで、ユーザに アカウントリンクの操作を促す要領や、ユーザーが許可を行うオペレーションなどは、既に下記において紹介させて頂いておりますので、不明な場合は、こちらをご参照ください。

参考
[Alexa] Account Linking を使用してスキルからFacebookに投稿してみました
[Alexa] Login with Amazon との Account Linking で名前を呼びかける挨拶とかメールを送信するスキルを作ってみました

5 最後に

コツを掴むとAccount Linkingは非常に簡単だと感じます。 スキル設定側で必要な項目、そして、リンク先の設定で必要な項目をそれぞれ整理することで、作業は簡潔になるでしょう。

6 参考リンク


ウェブアプリにLINEログインを組み込む
Link an Alexa User with a User in Your System