[日本語Alexa] Salesforceにアカウントリンクしてみました
1 はじめに
AIソリューション部の平内(SIN)です。
Alexaで、特定の権限でスキルを動作させるための基本的な仕組みは、アカウントリンクです。 以下は、今まで、各種のアカウントリンクを試した記事です。
[日本語Alexa] Cognito User Pool によるアカウントリンク
[Alexa] Microsoft Graph にアカウントリンクしてみました 〜AlexaでOffice 365を操作するために〜
[日本語Alexa] APIGatewayをプロキシーとして設定し、アカウントリンクをデバッグする
[Alexa] LINEログインでAccount Linkingしてみた
[Alexa] Login with Amazon との Account Linking で名前を呼びかける挨拶とかメールを送信するスキルを作ってみました
[Alexa] Account Linking を使用してスキルからFacebookに投稿してみました
今回は、社内で、Saleceforceのアカウント(sandbox)を使わせて頂く機会がありましたので、このシリーズの追加です。
作業の手順は、概ね以下のとおりです。
- 接続アプリケーションの作成 (Salesforce)
- OAuthの有効化 (Salesforce)
- コンシューマー鍵及び、コンシューマの秘密の取得 (Salesforce)
- アカウントリンクの設定 (スキル)
2 接続アプリケーションの作成 (Salesforce)
設定 > 設定 > アプリケーション > アプリケーションマネージャ > 新規接続アプリケーション とたどり、接続アプリケーションの作成を行います。
作成には、以下の3項目の入力が必須ですが、任意の値を指定できます。
- 接続アプリケーション名
- API参照名
- 取引責任者メール
3 OAuthの有効化 (Salesforce)
作成した接続アプリケーションの設定で、OAuthを有効にします。 指定する項目は、以下のとおりです。
- コールバックURL (Alexaスキルのアカウントリンクの設定からコピーします)
- 選択したOAuthの範囲 (スキルに付与する権限です、適切な値を設定するように注意が必要です)
4 コンシューマー鍵及び、コンシューマの秘密
接続アプリケーションの作成が完了すると、下記の2項目が取得できます。スキル側のアカウントリンクの設定で必要になるので、コピーしておいてください。
- コンシューマ鍵
- コンシューマの秘密
5 アカウントリンクの設定 (スキル)
Alexa側のアカウントリンクの設定は、以下のとおりです。
- Authrization Grant種別: Auth Code Grant
- 認証画面のURI: https://login.salesforce.com/services/oauth2/authorize
- アクセストークンのURI: https://login.salesforce.com/services/oauth2/token
- クライアントID: コンシューマ鍵(Salesforce)
- クライアントシークレット: コンシューマの秘密(Salesforce)
- クライアントの認可方法: リクエスト本文の資格情報
- スコープ: profile (Salesforceで許可されている範囲内で指定)
なお、認証画面とアクセストークンのURIのドメインは、Sandboxアカウントの場合は、test.salesforce.comになることにご注意ください。
6 アカウントリンク
- スキルを有効にすると、Salesforceでの認証画面が表示されます。
- 許可する内容に問題がなければ、許可を選択してください。
- 成功すると、下記の画面が表示されます。
- テスト環境で、Tokenが取得できていることを確認できます。
7 最後に
今回は、アカウントリンク・シリーズへの追加として、Salesforceへのアカウントリンクを試してみました。
Salesforceでは、OAuth2で取得したトークンで各種のRestAPIが利用可能です。
Salesforceをスキルで使用すると、少し利用範囲が広がるような気もします。お試しになる場合は、くれぐれも権限の付与にご注意ください。
8 参考リンク
弊社では、音声を中心とした各種ソリューションの開発支援を行なっております。