SDKリファレンス-connection
このセクションでは、コネクションを定義する際に使用できるすべてのキーを列挙します。
クイック概要
簡単に言うと、connectionハッシュには、コネクタがコネクションを正常に確立するために必要なすべての手順が含まれています。
fieldsキーは、認可に必要な情報を収集するために表示する入力フィールドをコネクタに指示します。extended_fieldsキーを使用すると、以前の入力に基づいて追加のコネクションフィールドを動的に表示できます。 このフィールドの定義は任意です。authorizationキーは、収集した情報をどう処理するかをコネクタに指示します。これを使用してaccess_tokenと交換します。base_uriキーは、コネクションが成功した後、すべてのHTTPリクエストの前に何を付加するかをコネクタに指示します。 これにより、アクションとトリガーを定義する際に、コネクタコードで相対パスを使用できます。
構造
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_typeがselectまたはmultiselectとして定義されたフィールドでは、pick_list属性の代わりにoptions属性を使用して静的なピックリストを定義します。
ピックリストはconnectionハッシュには適用されません
コネクターで定義したピックリストへの参照は、この時点では資格情報がまだ受信されていないため、connectionハッシュ内ではアクセスできません。
例: 詳細設定にネストされたピックリストを含むコネクションフィールド

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を含むコネクションフィールド
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は、authorizationやexecuteを含む他のすべてのlambdaにconnectionハッシュを渡します。 connectionハッシュには、fieldsとextended_fieldsの両方の値が含まれています。
例: extended_fieldsとextends_schemaを含むコネクションフィールド
次の例は、extended_fields内でextends_schemaを使用して、複数のステップを含むコネクション設定を作成する方法を示しています。
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つのシナリオがあります。
verbメソッド(
get('/hello/there')など)に先頭の"/"(フォワードスラッシュ)がある場合、base_uri内のパスパラメータは無視されます。たとえば、
base_uriとして定義されたhttps://api.hubapi.com/test/は実質的にhttps://api.hubapi.comになります。 リクエストはhttps://api.hubapi.com/hello/thereに送信されます。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: