データアクションの設定要求


注意:この記事は、Adobe、AWS Lambda、Google、Microsoft Dynamics 365、 PureCloud 、 Salesforce 、Webサービス、およびZendeskデータアクションの統合に適用されます。

データアクション統合用のカスタムアクションを作成できます。カスタムアクションは、その設定にリクエストとレスポンスを含みます。詳細については、 インテグレーション用のカスタムアクションを作成する.

この記事では、要求の各部分について説明します。応答の詳細については、 応答構成.

カスタムアクションでは、リクエストテンプレートを使用して、リモートエンドポイントまたは AWS Lambda 関数に対する POST、PUT、パッチリクエストの本文を定義します。リモートエンドポイントはによって定義されます requestUrlTemplate. これらの要求テンプレートは、マクロの使用をサポートします。詳細については、 データアクション用の速度マクロ

注意:GET 要求は、要求テンプレートを使用しません。の requestTemplate フィールドはデフォルト値を示します 「$ {input.rawRequest}」.
警告: 内の入力変数または出力変数の使用をエスケープするようにしてください requestTemplate, successTemplate、または requestUrlTemplate. 特殊文字を使用して変数を適切にエスケープしないと、実行時にデータアクションが失敗します。
  • 使用する esc.jsonString JSON本体内の文字列をエスケープします。見る esc.jsonString.
  • 使用する esc.url() または urlTool.optionalQueryParam() のパスまたはクエリパラメータを適切にエスケープするには requestUrlTemplate または requestTemplate 使用している場合 x-www.form-urlencoded 値。見る 文字列エスケープライブラリ.

requestTemplate

要求テンプレートは、Velocityを使用して、POST、PUT、およびPATCH要求の本文を定義します。リクエストテンプレートを保存すると、API 応答それを requestTemplateUri.

  • AWS Lambdaデータアクション統合の場合、指定したすべての入力 requestTemplateで利用可能になります出来事 呼び出されたAWS Lambda関数のパラメーター。
  • Google Cloud Functionsでは、 $ esc.jsonString マクロは、リクエスト内の文字列をJSONに変換します。

ヘッダー

ヘッダーは、リモートエンドポイントに送信される要求に HTTP ヘッダーとして追加されるキーと値のペアです。ヘッダー値は、速度置換をサポートします。

注意:認証を処理するために API に依存している場合は、要求ヘッダーに承認を含めないでください。統合によってヘッダーが自動的に設定されます。それ以外の場合は、要求ヘッダーに独自の権限を含めます。

アドビデータアクションの統合は、アクションにキーと値のペアを追加するランタイムのための認証処理。次の属性が自動的に設定されます。

  • x-api-key
  • x-gw-ims-org-id
  • x-sandbox-name(設定されている場合)

    サンドボックス名を統合認証情報に追加するか、アクションのヘッダーとして追加できます。サンドボックス名が両方の場所に設定されている場合、統合はで構成され、ヘッダ使用データ アクション 。 詳細については、 データアクション統合を追加する

AWS Lambdaデータアクション統合は、キーと値のペアを次のように追加します clientContext 呼び出しの項目 環境 オブジェクト。次の属性は自動的に設定されます 環境 属性が存在する場合はオブジェクト:

  • ININ-C オンサヴェルサション-ID
  • ININ-O 作動 ID
  • ININ-H オム組織-ID
  • ININ-C または関係-ID
  • ININ-U ザー ID
  • ININ-I 度-ID

requestType

リクエストの種類 データデータ アクションでHTTPリクエストのタイプを定義します。使用可能な HTTP 要求の種類には、POST、PUT、および PATCH があります。

注意:AWS LambdaとGoogleデータアクションの統合には、POSTを使用します。このHTTPメソッドは、すべての要求本文が送信されることを保証します。

requestUrlTemplate

requestUrlTemplate は、HTTPリクエストがヒットするリモートエンドポイントポイント、またはAWSデータアクション統合が呼び出すAWS Lambda関数のARNです。 requestUrlTemplate 変数置換にVelocityテンプレートを使用します。

注意:requestUrlTemplate参照する場合HTTP エンドポイント 、 requestUrlTemplateHTTPセキュア(HTTPS) エンドポイント参照する必要があります。

requestTemplateUri

requestTemplateUri は、参照URIです requestTemplate. 保存するとき requestTemplate、統合により崩壊します。の内容を表示するには requestTemplate 保存した後、GET操作を発行します requestTemplateUri.

requestTemplate

アクション実行ボディ

次のREST呼び出しは、アクションsampleAction123をトリガーし、 inputSchema サンプルアクションで。

curl -X POST https://api.mypurecloud.com/api/v2/integrations/actions/sampleAction123/execute \
  -H 'authorization: bearer *****' \
  -d '{
    "USER_ID": 123,
    "FIRST_NAME":"John",
    "LAST_NAME": "Smith"
}'

アクションサービスは、サンプルアクション内の次の3つのプロパティを参照する値を見つけて置き換えます。 requestUrlTemplate そして requestTemplate

requestTemplate

アクションは次のように構成されます requestTemplate

"{"firstName": "$esc.jsonString(${input.FIRST_NAME})","lastName": "$esc.jsonString(${input.LAST_NAME})"},

エスケープの詳細については、 esc.jsonString のセクション データアクション用の速度マクロ 論文。

アクションサービスは、サンプルアクションの Velocity テンプレートプレースホルダーを置き換え、次のようになります。

{
  "firstName": "John",
  "lastName": "Smith"
}

requestTemplate リモートエンドポイント送信されるHTTP POSTの本文になります。

Web サービス呼び出し

変更されたサンプルアクションにより、次の web サービスコールが発生します。

curl -X POST \
  https://sample.com/users/123 \
  -H 'content-type: application/json' \
  -H 'UserAgent: PureCloudIntegrations/1.0' \
  -H 'Company: My company' \
  -d '{
  "firstName": "John",
  "lastName": "Smith"}'

新しいアクションを作成する要求

以下は、POSTを実行するように構成されたアクションです。 https ://sample.com/users/${input.USER_ID}inputSchema リクエストの作成に使用される3つのプロパティを定義します。 USER_ID FIRST_NAME LAST_NAME これらの3つのプロパティは、 requestTemplate そして requestUrlTemplate.

{
  "category": "Sample",
  "contract": {
    "input": {
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "Update user's first and/or last name",
        "properties": {
          "USER_ID": {
            "description": "User Id",
            "type": "number"
          },
          "FIRST_NAME": {
            "description": "Users first name",
            "type": "string"
          },
          "LAST_NAME": {
            "description": "User last name",
            "type": "string"
          }
        },
        "required": [
          "USER_ID",
          "FIRST_NAME",
          "LAST_NAME"
        ],
        "title": "Update name request",
        "type": "object"
      }
    },
    "output": {
      ...
    }
  },
  "config": {
    "request": {
      "headers": {
        "Content-Type": "application/json",
        "UserAgent": "PureCloudIntegrations/1.0",
        "Company": "My company"
      },
      "requestTemplate" : "{\"firstName\": \"${input.FIRST_NAME}\",\"lastName\": \"${input.LAST_NAME}\"}",
      "requestType": "POST",
      "requestUrlTemplate": "https://sample.com/users/${input.USER_ID}"
    },
    "response": {
      ...
    }
  },
  "name": "Sample Action",
  "secure": true
}

アクション定義を取得した結果

{
    "id": "<action ID>",
    "name": "Sample Action", 
    ...
    "config: {
        "request": {
            "requestUrlTemplate": "https://sample.com/users/${input.USER_ID}",
            "requestTemplateUri": "/api/v2/integrations/actions/<action ID>/templates/requesttemplate.vm",
            "requestType": "POST",
            "headers": {
                "Content-Type": "application/json",
        	    "UserAgent": "PureCloudIntegrations/1.0",
        	    "Company": "My company"
         },
         "response": {
             ...
         }
    },
    "category": "Sample",
    "version": 1,
    "secure": true,
    "selfUri": "/api/v2/integrations/actions/<action ID>"
}

カスタムアクションの設定の詳細については、 構成を追加 そして 構成の変更.

詳細については、 統合のカスタムアクションについて

統合の詳細については、 データアクションの統合について.