[日本語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 参考リンク


Salesforce での OAuth 2.0 の詳細


弊社では、音声を中心とした各種ソリューションの開発支援を行なっております。

コメントは受け付けていません。