AlexaカスタムスキルとCognitoをアカウントリンクで連携させる
前の記事:Cognitoで認証情報を保存するユーザープール作成
アカウントリンク設定
ドメインの設定
Cognitoを表示して、左側のメニューより「ドメイン名」を押下
ドメインのプレフィックスに任意のドメインを入力 →このサンプルではalexa-sampleにしました
「変更を保存」を押下
ドメイン名のコピー
アカウントリンクの設定
alexaに戻り左側のメニューから「アカウントリンク」を押下
アカウントリンクの詳細設定
1.「ユーザーがアカウントや既存アカウントへのリンクを作成することを許可しますか?」をONにする
2.「アカウントリンクなしでスキルを有効にすることをユーザーに許可します (推奨)。」をOFFにする
3.「Auth Code Grant」を選択する
4. 「認証画面のURI」を以下フォーマットで設定する
https://{Amazon Cognito ドメイン}/login?client_id={アプリクライアントID}&response_type=code&scope=aws.cognito.signin.user.admin&redirec
※{Amazon Cognito ドメイン}はこちらで保存したドメインのURL
※{アプリクライアントID}はこちらで保存していた「アプリクライアントID」
5.「アクセストークのURI」を以下フォーマットで設定する
https://{Amazon Cognito ドメイン}/oauth2/token
※{Amazon Cognito ドメイン}は[こちら](https://qiita.com/kurisaka/items/6404f49b4d5134ee8e74#%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E5%90%8D%E3%81%AE%E3%82%B3%E3%83%94%E3%83%BC)で保存したドメインのURL
6.「ユーザーのクライアントID」にこちらで保存していた「アプリクライアントID」を入力する
7.「ユーザーのシークレット」にこちらで保存していた「アプリクアライアントのシークレット」を入力する
8.Alexaのリダイレクト先のURLはコピーしておく
9.最後に「保存」を押下
保存の成功メッセージが表示される
アプリクライアントの設定
Cognitoに戻り左側のメニューから「アプリクライアントの設定」を押下
アプリクライアントの詳細設定
- 「Cognito User Pool」を選択
- 「コールバックURL」はこちらの8でコピーしたAlexaのリダイレクト先のURLをカンマでつないで登録する
- 「サインアウトURL」は「https://alexa.amazon.co.jp」を入力
- 「許可されている OAuth フロー」で「Authorization code grant」を選択
- 「許可されている OAuth スコープ」で「aws.cognito.signin.user.admin」
- 「変更の保存」を押下
Cognitoの設定完了
「ホストされたUIを起動」のリンクが表示されれば登録は成功しています
Alexaの公開設定とアカウントリンク
Alexa公開設定
alexaに戻り上部の「公開」メニューを押下
以下赤枠の部分を入力して最後に「保存して続行」を押下
プライバシーとコンプライアンス設定
公開範囲設定
ベータテスト設定
招待メールのリンクを押下
「スキルテスト」を押下する
「有効にする」を押下する
Sign in画面が表示されたら、Sign upリンクを押下する
Sign up画面にアカウント情報を入力します
設定したEmailにverification Codeが送られてきます
表示された画面にverification Codeを入力して「Confirm Account」を押下します
アカウントリンク成功のメッセージが表示される
動作確認
iPhoneアプリから動作を確認
Cognitoの登録状況を確認
左側のメニューより「ユーザーとグループ」を押下
ユーザー名のリンクを押下