REST Web サービスおよび文字列アクションを使用して Bot を構築する
カスタム アプリ認証を使用してアクセス トークンを生成し、Salesforce REST APIとやり取りして、Automation 360 REST Web Service および String Operationアクションを使用して Bot を構築します。
前提条件
bot を構築するには、以下があることを確認します:
- 接続されたアプリを作成済みで、資格情報を利用できる。
- Control Room または Community Control Room にアクセスする
- ワークステーションが Control Room の登録済みデバイスであること。
手順
- Control Room にログインします。
- [Bot] > [マイ Bot] の順に移動して、[Bot を作成] アイコンをクリックします。
- [名前] フィールドに「ConnectToAPIwithOAuth」と入力します。
- 作成&編集 をクリックします。
-
[アクション] ページで、[変数] をクリックして新しい変数を作成します。
- [名前] フィールドに「sClientId」と入力します。
- [タイプ] フィールドで、[文字列] を選択します。
- [デフォルト値] フィールドに、[OAuth検証アプリ] の [コンシューマー キー] フィールドからの値を貼り付けます。
- [作成] をクリックします。
- 新しい sClientSecret変数、[タイプ] > [文字列]、[デフォルト値] > [コンシューマー シークレット] を作成し、値を貼り付けます。
- 新しい sUserName 変数、[タイプ] > [文字列]、[デフォルト値 > SalesForce ログイン ユーザー名を入力] を作成します。
- 新しい sPassword 変数、[タイプ] > [文字列]、[デフォルト値 > SalesForce ログイン パスワードを入力] を作成します。
- 新しい sSecurityToken 変数、[タイプ] > [文字列]、[デフォルト値] > [セキュリティ トークン] を作成し、値を貼り付けます。
- 新しい dResponse 変数、[タイプ] > [ディクショナリ] および [サブタイプ] > [文字列] を作成します。
- 新しい sExtractedValue 変数、[タイプ] > [文字列]を作成します。
-
[アクション] ウィンドウで、[REST Web サービス] > [POST メソッド] の順に選択し、bot フローの [開始] の下に配置します。
-
[URI] フィールドに、「
https://ap17.salesforce.com/services/oauth2/token?grant_type=password&client_id=$sClientId$&client_secret=$sClientSecret$&username=$sUsername$&password=$sPassword$$sSecurityToken$
」と入力します。「ap17」を Salesforce インスタンス番号に置き換えます。 - [認証モード] ドロップダウン リストで、[認証なし] を選択します。
- [コンテンツ タイプ] ドロップダウン リストで、[JSON (アプリケーション/JSON)] を選択します。
- [出力を変数に割り当てる] ドロップダウン リストで、[dResponse - 文字列のディクショナリ] を選択します。
-
[URI] フィールドに、「
- [アクション] ウィンドウで、[メッセージ ボックス] を bot フローにドラッグします。[表示するメッセージを入力] フィールドに「$dResponse{Body}$」と入力します。
-
[アクション] ウィンドウで、[文字列] > [テキストの抽出] の順にクリックします。
- [ソース文字列] フィールドに「$dResponse{Body}$」と入力します。
- [テキストの後に開始] の前または後に「"access_token":"」、[回数] に「1」を入力し、[AND] を選択し、[テキストの前に終了] に「","」と入力し、[回数] に「1」と入力します。[一致が見つからない場合は戻る] に [ソース文字列] を選択します。[取得する文字数] に [すべて] を選択し、[抽出したテキストをトリム (空白スペースを削除)] をクリックし、[抽出したテキストから Enter を削除] をクリックします。
- [出力を変数に割り当てる] ドロップダウン リストで、[sExtractedValue - 文字列] を選択します。
- [アクション] ウィンドウで、[メッセージ ボックス] を bot フローにドラッグします。[表示するメッセージを入力 フィールドに「$sExtractedValue$」と入力します。
-
[アクション] ウィンドウで、[REST Web サービス] > [POST メソッド] を選択します。
-
[URI] フィールドに「
https://ap17.salesforce.com/services/data/v36.0/sobjects/Account
」と入力します。「ap17」を Salesforce インスタンス番号に置き換えます。 - [認証モード] ドロップダウン リストで、[認証なし] を選択します。
-
[ヘッダー] > [カスタム ヘッダー] > [(追加)] の順にクリックします:
- [名前]フィールドに「Authorization」と入力します。
- [値] フィールドに「Bearer $sExtractedValue$」と入力します。
- [コンテンツ タイプ] ドロップダウン リストで、[JSON (アプリケーション/JSON)] を選択します。
-
[カスタム パラメーター] に、次のコードを入力します:
{ "Name" : "Text passed through A2019 REST API"}
- [出力を変数に割り当てる] ドロップダウン リストで、[dOutput - 文字列のディクショナリ] を選択します。
-
[URI] フィールドに「
- [アクション] ウィンドウから [メッセージ ボックス] をドラッグします。[表示するメッセージを入力] フィールドに「$dOutput{Body}$」と入力します。
-
[アクション] ウィンドウで、[文字列] > [テキストの抽出] を選択します。
- [ソース文字列] フィールドに「$dOutput{Body}$」と入力します。
- [テキストの後に開始] の前または後に「"id":"」、[回数] に「1」を入力し、[AND] を選択、[テキストの前に終了] に「","」と入力し、[回数] に「1」と入力します。[一致が見つからない場合は戻る] に [ソース文字列] を選択し、[取得する文字数] に [すべて] を選択し、[抽出したテキストをトリム (空白スペースを削除)] をクリックし、[抽出したテキストから Enter を削除] をクリックします。
- [出力を変数に割り当てる] ドロップダウン リストで、プラス記号をクリックして新しい sURLValue、[タイプ] > [文字列] を作成します。
- [作成&選択] をクリックします。
-
[アクション] ウィンドウから [メッセージ ボックス] をドラッグします。[表示するメッセージを入力] フィールドに「$sURLValue$」と入力します。
bot からのメッセージに、URL 値 0014R00002gIcsZQAS が表示されます。この値を使用して、Salesforce アカウントのデータを検証します。
https://<yourinstance>.salesforce.com/<sURLValue>
例:https://ap17.salesforce.com/0014R00002gIcsZQAS