SDKリファレンス-connection

このページは機械翻訳により提供されています。翻訳内容と英語版に相違がある場合は、英語版が優先されます。

このセクションでは、コネクションを定義する際に使用できるすべてのキーを列挙します。

クイック概要

簡単に言うと、connectionハッシュには、コネクタがコネクションを正常に確立するために必要なすべての手順が含まれています。

  • fieldsキーは、認可に必要な情報を収集するために表示する入力フィールドをコネクタに指示します。
  • extended_fieldsキーを使用すると、以前の入力に基づいて追加のコネクションフィールドを動的に表示できます。 このフィールドの定義は任意です。
  • authorizationキーは、収集した情報をどう処理するかをコネクタに指示します。これを使用してaccess_tokenと交換します。
  • base_uriキーは、コネクションが成功した後、すべてのHTTPリクエストの前に何を付加するかをコネクタに指示します。 これにより、アクションとトリガーを定義する際に、コネクタコードで相対パスを使用できます。

構造

ruby
  connection: {
    fields: Array,

    extended_fields: lambda do |connection|
      Array
    end,

    authorization: Hash,

    base_uri: lambda do |connection|
      String
    end
  }

fields

'fields'キーには次の属性があります:

キー
fields
タイプ
配列
必須
False
説明
ハッシュの配列を受け入れます。 この配列内の各ハッシュは、個別の入力フィールドに対応します。
Workatoで入力フィールドを定義する方法については、SDKリファレンス-スキーマを参照してください。

コネクションフィールド内のピックリスト

control_typeselectまたはmultiselectとして定義されたフィールドでは、pick_list属性の代わりにoptions属性を使用して静的なピックリストを定義します。

ピックリストはconnectionハッシュには適用されません

コネクターで定義したピックリストへの参照は、この時点では資格情報がまだ受信されていないため、connectionハッシュ内ではアクセスできません。

例: 詳細設定にネストされたピックリストを含むコネクションフィールド

ruby
    fields: [
      {
        name: 'api_key',
        control_type: 'password',
        hint: 'APIキーは' \
          "ChargebeeのWebコンソールの'Settings'=>'Configure Chargebee'=>'API Keys and Webhooks'" \
          "で確認できます。",
        label: 'APIキー',
        default: "helloaaaabbb",
        optional: false
      },
      {
        name: 'domain',
        control_type: 'subdomain',
        url: 'chargebee.com'
      },
      {
        name: "advanced_settings",
        type: "object",
        optional: "true",
        properties: [
          {
            name: "environment",
            optional: true,
            control_type: "select",
            options: [
              ["Development", "dev"],
              ["プロダクション", "prod"]
            ]
          }
        ]
      }
    ],

extended_fields

'extended_fields'キーには次の属性があります:

キー
extended_fields
タイプ
ラムダ関数
必須
False
説明
コネクションに基づいて、追加の入力フィールドを任意で表示できます。 出力は有効なWorkatoスキーマであることが想定されています。 SDKリファレンス-スキーマの詳細をご確認ください。

extended_fieldsの使用方法

extended_fieldsを使用すると、以前の入力フィールドに基づいて追加フィールドを動的に表示できます。 コネクションの設定が複雑で多数の入力フィールドで構成される場合は、ユーザーが表示できるフィールド数を制限することを検討してください。 すべてのフィールドを同時に表示する代わりに、extended_fieldsを使用して、最初にユーザーに表示するフィールド数、および追加フィールドを表示するタイミングを制御します。

この場合、extended_fieldsには、コネクションの設定中にユーザーに表示するフィールドを制御し、ユーザーを操作手順に沿ってガイドできるという追加の利点があります。 場合によっては、関連性がないフィールドを表示しないように制限することもできます。

例: extended_fieldsを含むコネクションフィールド

ruby
    fields: [
      {
        name: "api_key",
        control_type: "password",
        hint: "You can find your API key " \
          "under 'Settings'=>'Configure Chargebee'=>'API Keys and Webhooks'" \
          " in Chargebee's web console.",
        label: "Your API Key"
      },
      {
        name: "custom_domain",
        label: "Are you using a custom domain?",
        extends_schema: true,
        control_type: "checkbox"
      }
    ],

    extended_fields: lambda do |connection|
      if connection['custom_domain'] == "true"
        [
          {
            name: "domain",
            control_type: "subdomain",
            extends_schema: true,
            url: ".acme.com"
          }
        ]
      end
    end,

Workatoは、authorizationexecuteを含む他のすべてのlambdaにconnectionハッシュを渡します。 connectionハッシュには、fieldsextended_fieldsの両方の値が含まれています。

例: extended_fieldsとextends_schemaを含むコネクションフィールド

次の例は、extended_fields内でextends_schemaを使用して、複数のステップを含むコネクション設定を作成する方法を示しています。

ruby
  connection: {
    fields: [
      {
        name: "api_key",
        control_type: "password",
        hint: "You can find your API key " \
          "under 'Settings'=>'Configure Chargebee'=>'API Keys and Webhooks'" \
          " in Chargebee's web console.",
        label: "Your API Key"
      },
      {
        name: "custom_domain",
        label: "Are you using a custom domain?",
        extends_schema: true,
        control_type: "checkbox"
      }
    ],

    extended_fields: lambda do |connection|
        [
          (
            if connection['custom_domain'] == "true"
              {
                name: "domain",
                control_type: "subdomain",
                optional: false,
                url: ".acme.com"
              }
            end
          ),
          (
            if connection['custom_domain'] == "true"
              {
                name: "instance_type",
                control_type: "select",
                extends_schema: true,
                optional: false,
                options: [ ["Production", "production"], ["Sandbox", "sandbox"]]
              }
            end
          ),
          (
            if connection['instance_type'] == "sandbox"
              {
                name: "protocol",
                control_type: "select",
                optional: false,
                options: [ ["HTTPS", "https://"], ["HTTP", "http://"]]
              }
            end
          )
        ].compact
    end,

    authorization: {
      type: 'basic',

      apply: lambda { |connection, access_token|
        headers("x-api-key": "#{connection['api_key']}")
      }
    },

    base_uri: lambda do |connection|
        if connection['custom_domain'] == "true"
          "#{connection['protocol']}#{connection['domain']}.acme.com/"
        else
          "https://api.acme.com/"
        end
    end
  },

authorization

'authorization'キーには次の属性があります:

キー
authorization
タイプ
ハッシュ
必須
True
説明
さまざまな認証タイプに対応する子キーを持つオブジェクトを受け入れます

authorizationハッシュの詳細については、SDKリファレンス-authorizationを参照してください。


base_uri

'base_uri'キーには次の属性があります:

キー
base_uri
タイプ
ラムダ関数
必須
False. ただし、使用することをお勧めします。
説明
今後のすべてのHTTPリクエストのベースURIを定義します。
指定可能な引数
connection
コネクションで定義されたユーザー指定の入力を表すハッシュ。
想定される出力
String(次のいずれかなど):
  • "https://#{connection['host']}.com/"
  • "https://api.acme.com"

base_uriの設定

base_uriキーを定義する際は、指定する最終的なURIを必ず確認してください。 base_uriを後続のHTTPリクエストと組み合わせて使用する場合、2つのシナリオがあります。

  1. verbメソッド(get('/hello/there')など)に先頭の"/"(フォワードスラッシュ)がある場合、base_uri内のパスパラメータは無視されます。

    たとえば、base_uriとして定義されたhttps://api.hubapi.com/test/は実質的にhttps://api.hubapi.comになります。 リクエストはhttps://api.hubapi.com/hello/thereに送信されます。

  2. verbメソッド( get('hello/there')など)に先頭の"/"(フォワードスラッシュ)がない場合、base_uri内のパスパラメータが採用されます。

    たとえば、base_uriとして定義されたhttps://api.hubapi.com/test/https://api.hubapi.com/test/のままです。 リクエストはhttps://api.hubapi.com/test/hello/thereに送信されます。

Last updated: