概要
Alexaアプリ第二弾。
今度はAlexaに話しかけることで、Lineに通知・リマインドしてくれるアプリを作った。
Echoに対して、
「アレクサ、リマインダーで⚪︎⚪︎とリマインドして」
と話しかけると、Lineに⚪︎⚪︎の部分を通知してくれる。
[第一弾はこちら]
【Alexa Skill開発】Alexaに最寄り駅の次発電車の発車時刻を教えてもらう(AmazonEcho) - 技術メモ集
作成方法
今回は三つのフェーズで作成していく
1. line Notifyトークンの作成
2. Lambdaアプリケーションの作成
3. Alexaの会話フローの作成
1. line Notifyトークンの作成
以下にログインし、右上のユーザー名からマイページを選択
すると、「トークンを作成する」ボタンがあるのでここを選択する。
トークを選択するとトークンが表示されるので、どこかにメモをしておく。
(ここでメモをしておかないと再表示はできないので注意)
LINE Notify
2. Lambdaアプリケーションの作成
Lambda側のアプリケーションを作成する。
今回はLambdaアプリのソースをGithubに公開してみたので、ソースはここを参考のこと。
github.com
アプリケーションを作成
WebブラウザでAWSマネジメントコンソール( https://console.aws.amazon.com/ )にアクセス、ログインし、画面左上の「AWSサービス」のテキストボックスに「lambda」と入力し、表示される候補から「Lambda」をクリックする。
AWS Lambdaの初期画面が表示されたら、「関数の作成」を押し、
関数の作成:1から作成
名前:myLine
ランタイム:python3.6
ロール:既存のロールを選択
既存のロール:service-role/FactRall
として作成を押す。
ソースコードのアップデート
するとmyLineの画面が出るので、まずはmyLineを選択し、下にスクロール。
コードエントリタイプを押し、zipファイルをアップデートを選択し、先のgithubにあるarc.zipを選択しアップデートする。
ソースコード編集画面で、先に保存したトークンをソースに記述する。
左上のARN - arn////
とある部分のarn///をメモしておく。
Alexaとの連接
HPの一番上に戻り、グラフ表示のmyLine2の左側にAlexa Skills Kitを追加する。
スキルID検証はとりあえず無効にして追加ボタンを押す。
(後でスキルID検証はしておく方が望ましい)
とりあえずLambda側の設定はこれでおしまい。
次はAlexaの会話フローの作成を行う。
3. Alexaの会話フローの作成
以下の開発者コンソールからログインし、Alexa Skills Kitを選択する。
https://developer.amazon.com/edw/home.html#/
新しいスキルを選択し
スキル情報
スキルの種類:カスタム対話モデル
言語:日本語
スキル名:リマインダ
呼び出し名:リマインダ
#保存すると出てくるアプリケーションIDをLambda側に登録しておくことが望ましい
対話モデル
インテントスキーマ
{ "intents": [ { "slots": [ { "name": "MessageType", "type": "LIST_OF_MESSAGE_TYPE" } ], "intent": "GetNewFactIntent" } ] }
カスタムタイプ
LIST_OF_MESSAGE_TYPE 柔軟剤を買う | 洗剤を買う | ホテルを予約する
サンプル発話
GetNewFactIntent {MessageType} とリマインドして GetNewFactIntent {MessageType} GetNewFactIntent {MessageType} と通知して GetNewFactIntent {MessageType} とメモして GetNewFactIntent {MessageType} と伝えて
設定
エンドポイント:AWS LambdaのARN
デフォルト:先ほどメモしたLambdaのarn.///の部分
とここまで作成して、後はテストで
「洗剤を買ってくるとリマインドして」
等と打ち込むと、Lineに通知がくるようであれば成功。
お疲れさまでした!!
感想
比較的長いけれど、やってみれば30分くらいで運用まで持っていけるはず。
Alexa-Lambdaの連携は本当に開発しやすいなぁ、としみじみ。