[Alexa] LINEログインでAccount Linkingしてみた
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アカウントでログインします。
ログインが完了したらプロパイダーを作成するを選択します。
プロパイダ名を指定して確認ボタンを押します。
確認で問題がなければ、作成は完了です。
(2) チャンネルの作成
LINE Developerのホーム画面からLINEログインを始めるを選択すると、チャンネル作成が始まります。
プロパイダーを選択し、次のページへ移動します。
アプリ名等を入力し確認に進みます。この際、WEBで使う[WEB] にチェックを入れておきます。
問題がなければ、作成は完了します。
チャンネルの基本設定のページを開くと、Channel ID及び、Channel Secretが確認できます。これらは、Account Linkingの設定で必要になるので、コピーしておきます。
最後に、アプリ設定を開いて、Callback URLを設定します。
このURLは、Account Linkingの設定画面のRedirect URLsに生成されているものを使用します。
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トークンを取得する権限
4 動作確認
Account Linkingが有効になっているスキルで、ユーザーがリンク操作を完了すると、スキルへのリクエストでアクセストークンが送られてくるようになります。 ここでは、適当なSkillをEndpointに設定し、Test画面でAlexaから送られて来たaccessTokenをコピーして、動作を確認してみます。
LINEのSocial APIでは、/profileでユーザープロフィールを取得する事ができます。
下記は、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