@squadbase/vite-server 0.1.3-dev.16 → 0.1.3-dev.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +10906 -26320
- package/dist/connectors/airtable-oauth.js +27 -1
- package/dist/connectors/airtable.js +27 -1
- package/dist/connectors/amplitude.js +27 -1
- package/dist/connectors/anthropic.js +27 -1
- package/dist/connectors/asana.js +27 -1
- package/dist/connectors/attio.js +27 -1
- package/dist/connectors/backlog-api-key.js +27 -1
- package/dist/connectors/customerio.js +27 -1
- package/dist/connectors/dbt.js +27 -1
- package/dist/connectors/gamma.js +27 -1
- package/dist/connectors/gemini.js +27 -1
- package/dist/connectors/gmail-oauth.js +49 -3
- package/dist/connectors/gmail.js +36 -10
- package/dist/connectors/google-ads.js +56 -12
- package/dist/connectors/google-analytics-oauth.js +45 -3
- package/dist/connectors/google-analytics.js +33 -7
- package/dist/connectors/google-calendar-oauth.js +45 -3
- package/dist/connectors/google-calendar.js +45 -15
- package/dist/connectors/google-docs.js +58 -12
- package/dist/connectors/google-drive.js +69 -11
- package/dist/connectors/google-sheets.js +63 -11
- package/dist/connectors/google-slides.js +65 -13
- package/dist/connectors/grafana.js +27 -1
- package/dist/connectors/hubspot-oauth.js +27 -1
- package/dist/connectors/hubspot.js +27 -1
- package/dist/connectors/intercom-oauth.js +27 -1
- package/dist/connectors/intercom.js +27 -1
- package/dist/connectors/jira-api-key.js +27 -1
- package/dist/connectors/kintone-api-token.js +35 -9
- package/dist/connectors/kintone.js +27 -1
- package/dist/connectors/linkedin-ads.js +27 -1
- package/dist/connectors/mailchimp-oauth.js +27 -1
- package/dist/connectors/mailchimp.js +27 -1
- package/dist/connectors/mixpanel.js +27 -1
- package/dist/connectors/notion-oauth.js +27 -1
- package/dist/connectors/notion.js +27 -1
- package/dist/connectors/openai.js +27 -1
- package/dist/connectors/sentry.js +27 -1
- package/dist/connectors/shopify-oauth.js +27 -1
- package/dist/connectors/shopify.js +27 -1
- package/dist/connectors/stripe-api-key.js +27 -1
- package/dist/connectors/stripe-oauth.js +27 -1
- package/dist/connectors/wix-store.js +27 -1
- package/dist/connectors/zendesk-oauth.js +27 -1
- package/dist/connectors/zendesk.js +27 -1
- package/dist/index.js +302 -98
- package/dist/main.js +302 -98
- package/dist/vite-plugin.js +302 -98
- package/package.json +3 -1
package/dist/vite-plugin.js
CHANGED
|
@@ -66346,7 +66346,33 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
66346
66346
|
return result;
|
|
66347
66347
|
}
|
|
66348
66348
|
static deriveKey(slug, authType) {
|
|
66349
|
-
|
|
66349
|
+
if (authType) return `${slug}-${authType}`;
|
|
66350
|
+
const LEGACY_NULL_AUTH_TYPE_MAP = {
|
|
66351
|
+
// user-password
|
|
66352
|
+
"postgresql": "user-password",
|
|
66353
|
+
"mysql": "user-password",
|
|
66354
|
+
"clickhouse": "user-password",
|
|
66355
|
+
"kintone": "user-password",
|
|
66356
|
+
"squadbase-db": "user-password",
|
|
66357
|
+
// service-account
|
|
66358
|
+
"snowflake": "service-account",
|
|
66359
|
+
"bigquery": "service-account",
|
|
66360
|
+
"google-analytics": "service-account",
|
|
66361
|
+
"google-calendar": "service-account",
|
|
66362
|
+
"aws-athena": "service-account",
|
|
66363
|
+
"redshift": "service-account",
|
|
66364
|
+
// api-key
|
|
66365
|
+
"databricks": "api-key",
|
|
66366
|
+
"dbt": "api-key",
|
|
66367
|
+
"airtable": "api-key",
|
|
66368
|
+
"openai": "api-key",
|
|
66369
|
+
"gemini": "api-key",
|
|
66370
|
+
"anthropic": "api-key",
|
|
66371
|
+
"wix-store": "api-key"
|
|
66372
|
+
};
|
|
66373
|
+
const fallbackAuthType = LEGACY_NULL_AUTH_TYPE_MAP[slug];
|
|
66374
|
+
if (fallbackAuthType) return `${slug}-${fallbackAuthType}`;
|
|
66375
|
+
return slug;
|
|
66350
66376
|
}
|
|
66351
66377
|
};
|
|
66352
66378
|
|
|
@@ -69680,7 +69706,7 @@ var listCustomersTool = new ConnectorTool({
|
|
|
69680
69706
|
});
|
|
69681
69707
|
|
|
69682
69708
|
// ../connectors/src/connectors/google-ads/setup.ts
|
|
69683
|
-
var listCustomersToolName = `google-
|
|
69709
|
+
var listCustomersToolName = `google-ads-oauth_${listCustomersTool.name}`;
|
|
69684
69710
|
var googleAdsOnboarding = new ConnectorOnboarding({
|
|
69685
69711
|
connectionSetupInstructions: {
|
|
69686
69712
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Google Ads (OAuth) \u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002
|
|
@@ -69723,9 +69749,9 @@ var googleAdsOnboarding = new ConnectorOnboarding({
|
|
|
69723
69749
|
- Write only 1 sentence between tool calls, then immediately call the next tool. Skip unnecessary explanations and proceed efficiently`
|
|
69724
69750
|
},
|
|
69725
69751
|
dataOverviewInstructions: {
|
|
69726
|
-
en: `1. Call google-
|
|
69752
|
+
en: `1. Call google-ads-oauth_request with POST customers/{customerId}/googleAds:searchStream to explore available campaign data using GAQL: SELECT campaign.id, campaign.name, campaign.status FROM campaign LIMIT 10
|
|
69727
69753
|
2. Explore ad group and keyword data as needed to understand the data structure`,
|
|
69728
|
-
ja: `1. google-
|
|
69754
|
+
ja: `1. google-ads-oauth_request \u3067 POST customers/{customerId}/googleAds:searchStream \u3092\u547C\u3073\u51FA\u3057\u3001GAQL\u3067\u30AD\u30E3\u30F3\u30DA\u30FC\u30F3\u30C7\u30FC\u30BF\u3092\u63A2\u7D22: SELECT campaign.id, campaign.name, campaign.status FROM campaign LIMIT 10
|
|
69729
69755
|
2. \u5FC5\u8981\u306B\u5FDC\u3058\u3066\u5E83\u544A\u30B0\u30EB\u30FC\u30D7\u3084\u30AD\u30FC\u30EF\u30FC\u30C9\u30C7\u30FC\u30BF\u3092\u63A2\u7D22\u3057\u3001\u30C7\u30FC\u30BF\u69CB\u9020\u3092\u628A\u63E1`
|
|
69730
69756
|
}
|
|
69731
69757
|
});
|
|
@@ -69874,10 +69900,12 @@ var googleAdsConnector = new ConnectorPlugin({
|
|
|
69874
69900
|
]
|
|
69875
69901
|
},
|
|
69876
69902
|
systemPrompt: {
|
|
69877
|
-
en: `### Tools
|
|
69903
|
+
en: `### Tools (setup-time only)
|
|
69904
|
+
|
|
69905
|
+
- \`google-ads-oauth_request\`: Send authenticated requests to the Google Ads API during setup / data overview. Use it for GAQL queries via searchStream. The {customerId} placeholder in paths is automatically replaced (hyphens removed). Authentication and developer token are configured automatically.
|
|
69906
|
+
- \`google-ads-oauth_listCustomers\`: List accessible Google Ads customer accounts. Use this during setup to discover available accounts.
|
|
69878
69907
|
|
|
69879
|
-
|
|
69880
|
-
- \`google-ads_listCustomers\`: List accessible Google Ads customer accounts. Use this during setup to discover available accounts.
|
|
69908
|
+
> **Important**: These tools are only available at setup time. Inside server-logic handlers, use the SDK (\`connection(id).search\`, etc.) \u2014 the SDK's fetch is already wired through the OAuth proxy. **Do NOT** hand-roll HTTP calls to \`_sqcore/connections/*/request\` from a handler.
|
|
69881
69909
|
|
|
69882
69910
|
### Google Ads API Reference
|
|
69883
69911
|
|
|
@@ -69909,7 +69937,14 @@ segments.date, segments.device, segments.ad_network_type
|
|
|
69909
69937
|
|
|
69910
69938
|
### Business Logic
|
|
69911
69939
|
|
|
69912
|
-
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables.
|
|
69940
|
+
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables and do NOT read \`INTERNAL_SQUADBASE_*\` env vars \u2014 the SDK takes care of OAuth.
|
|
69941
|
+
|
|
69942
|
+
SDK surface (client created via \`connection(connectionId)\`):
|
|
69943
|
+
- \`client.request(path, init?)\` \u2014 low-level authenticated fetch. \`{customerId}\` placeholders in the path are auto-replaced with the configured customer id.
|
|
69944
|
+
- \`client.search(query, customerId?)\` \u2014 execute a GAQL query via searchStream and get rows back.
|
|
69945
|
+
- \`client.listAccessibleCustomers()\` \u2014 return the list of customer IDs the OAuth user can access.
|
|
69946
|
+
|
|
69947
|
+
If a handler test fails with \`Connection proxy is not configured\`, retry \u2014 the sandbox is still initializing. Do NOT abandon the SDK and construct OAuth proxy URLs manually.
|
|
69913
69948
|
|
|
69914
69949
|
#### Example
|
|
69915
69950
|
|
|
@@ -69927,10 +69962,12 @@ rows.forEach(row => console.log(row));
|
|
|
69927
69962
|
// List accessible customer accounts
|
|
69928
69963
|
const customerIds = await ads.listAccessibleCustomers();
|
|
69929
69964
|
\`\`\``,
|
|
69930
|
-
ja: `### \u30C4\u30FC\u30EB
|
|
69965
|
+
ja: `### \u30C4\u30FC\u30EB\uFF08\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306E\u307F\uFF09
|
|
69966
|
+
|
|
69967
|
+
- \`google-ads-oauth_request\`: \u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3084\u30C7\u30FC\u30BF\u6982\u8981\u628A\u63E1\u6642\u306B Google Ads API \u3078\u8A8D\u8A3C\u6E08\u307F\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u9001\u4FE1\u3057\u307E\u3059\u3002searchStream \u3092\u4F7F\u3063\u305F GAQL \u30AF\u30A8\u30EA\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002\u30D1\u30B9\u5185\u306E {customerId} \u30D7\u30EC\u30FC\u30B9\u30DB\u30EB\u30C0\u30FC\u306F\u81EA\u52D5\u7684\u306B\u7F6E\u63DB\u3055\u308C\u307E\u3059\uFF08\u30CF\u30A4\u30D5\u30F3\u306F\u9664\u53BB\uFF09\u3002\u8A8D\u8A3C\u3068\u30C7\u30D9\u30ED\u30C3\u30D1\u30FC\u30C8\u30FC\u30AF\u30F3\u306F\u81EA\u52D5\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002
|
|
69968
|
+
- \`google-ads-oauth_listCustomers\`: \u30A2\u30AF\u30BB\u30B9\u53EF\u80FD\u306A Google Ads \u9867\u5BA2\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3057\u307E\u3059\u3002\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306B\u5229\u7528\u53EF\u80FD\u306A\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u78BA\u8A8D\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002
|
|
69931
69969
|
|
|
69932
|
-
|
|
69933
|
-
- \`google-ads_listCustomers\`: \u30A2\u30AF\u30BB\u30B9\u53EF\u80FD\u306AGoogle Ads\u9867\u5BA2\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3057\u307E\u3059\u3002\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306B\u5229\u7528\u53EF\u80FD\u306A\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u78BA\u8A8D\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002
|
|
69970
|
+
> **\u91CD\u8981**: \u3053\u308C\u3089\u306E\u30C4\u30FC\u30EB\u306F\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306E\u307F\u5229\u7528\u53EF\u80FD\u3067\u3059\u3002\u30B5\u30FC\u30D0\u30FC\u30ED\u30B8\u30C3\u30AF\u306E\u30CF\u30F3\u30C9\u30E9\u5185\u3067\u306F\u5FC5\u305A SDK\uFF08\`connection(id).search\` \u306A\u3069\uFF09\u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002SDK \u306E fetch \u306F OAuth \u30D7\u30ED\u30AD\u30B7\u7D4C\u7531\u3067\u65E2\u306B\u914D\u7DDA\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30CF\u30F3\u30C9\u30E9\u304B\u3089 \`_sqcore/connections/*/request\` \u3092\u624B\u66F8\u304D\u3067\u547C\u3073\u51FA\u3055\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
|
|
69934
69971
|
|
|
69935
69972
|
### Google Ads API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
69936
69973
|
|
|
@@ -69962,7 +69999,14 @@ segments.date, segments.device, segments.ad_network_type
|
|
|
69962
69999
|
|
|
69963
70000
|
### Business Logic
|
|
69964
70001
|
|
|
69965
|
-
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\
|
|
70002
|
+
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\u30BF SDK \u3092\u4F7F\u7528\u3057\u3066\u30CF\u30F3\u30C9\u30E9\u30B3\u30FC\u30C9\u3092\u8A18\u8FF0\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u74B0\u5883\u5909\u6570\u304B\u3089\u76F4\u63A5\u8A8D\u8A3C\u60C5\u5831\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002\`INTERNAL_SQUADBASE_*\` \u306E\u74B0\u5883\u5909\u6570\u3092\u4F7F\u3063\u3066\u624B\u52D5\u3067 OAuth \u30D7\u30ED\u30AD\u30B7\u3092\u53E9\u304F\u3053\u3068\u3082\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044 \u2014 SDK \u304C OAuth \u3092\u51E6\u7406\u3057\u307E\u3059\u3002
|
|
70003
|
+
|
|
70004
|
+
SDK\uFF08\`connection(connectionId)\` \u3067\u4F5C\u6210\u3057\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\uFF09:
|
|
70005
|
+
- \`client.request(path, init?)\` \u2014 \u4F4E\u30EC\u30D9\u30EB\u306E\u8A8D\u8A3C\u4ED8\u304D fetch\u3002\u30D1\u30B9\u5185\u306E \`{customerId}\` \u306F\u81EA\u52D5\u7684\u306B\u8A2D\u5B9A\u6E08\u307F\u30AB\u30B9\u30BF\u30DE\u30FC ID \u306B\u7F6E\u63DB\u3055\u308C\u307E\u3059\u3002
|
|
70006
|
+
- \`client.search(query, customerId?)\` \u2014 GAQL \u30AF\u30A8\u30EA\u3092 searchStream \u3067\u5B9F\u884C\u3057\u3001\u884C\u3092\u53D6\u5F97\u3002
|
|
70007
|
+
- \`client.listAccessibleCustomers()\` \u2014 OAuth \u30E6\u30FC\u30B6\u30FC\u304C\u30A2\u30AF\u30BB\u30B9\u53EF\u80FD\u306A\u30AB\u30B9\u30BF\u30DE\u30FC ID \u4E00\u89A7\u3092\u53D6\u5F97\u3002
|
|
70008
|
+
|
|
70009
|
+
\u30CF\u30F3\u30C9\u30E9\u306E\u30C6\u30B9\u30C8\u304C \`Connection proxy is not configured\` \u3067\u5931\u6557\u3059\u308B\u5834\u5408\u306F\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u901A\u5E38\u306F\u30B5\u30F3\u30C9\u30DC\u30C3\u30AF\u30B9\u306E\u521D\u671F\u5316\u4E2D\u306B\u8D77\u304D\u307E\u3059\u3002SDK \u3092\u8AE6\u3081\u3066 OAuth \u30D7\u30ED\u30AD\u30B7\u306E URL \u3092\u81EA\u5206\u3067\u7D44\u307F\u7ACB\u3066\u308B\u3053\u3068\u306F **\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044**\u3002
|
|
69966
70010
|
|
|
69967
70011
|
#### Example
|
|
69968
70012
|
|
|
@@ -70029,10 +70073,10 @@ const customerIds = await ads.listAccessibleCustomers();
|
|
|
70029
70073
|
// ../connectors/src/connectors/google-analytics/setup.ts
|
|
70030
70074
|
var googleAnalyticsOnboarding = new ConnectorOnboarding({
|
|
70031
70075
|
dataOverviewInstructions: {
|
|
70032
|
-
en: `1. Call google-
|
|
70033
|
-
2. Call google-
|
|
70034
|
-
ja: `1. google-
|
|
70035
|
-
2. google-
|
|
70076
|
+
en: `1. Call google-analytics-service-account_request with GET properties/{propertyId}/metadata to list available dimensions and metrics
|
|
70077
|
+
2. Call google-analytics-service-account_request with POST properties/{propertyId}:runReport using a small date range and basic metrics to verify data availability`,
|
|
70078
|
+
ja: `1. google-analytics-service-account_request \u3067 GET properties/{propertyId}/metadata \u3092\u547C\u3073\u51FA\u3057\u3001\u5229\u7528\u53EF\u80FD\u306A\u30C7\u30A3\u30E1\u30F3\u30B7\u30E7\u30F3\u3068\u30E1\u30C8\u30EA\u30AF\u30B9\u306E\u4E00\u89A7\u3092\u53D6\u5F97
|
|
70079
|
+
2. google-analytics-service-account_request \u3067 POST properties/{propertyId}:runReport \u3092\u77ED\u3044\u671F\u9593\u3068\u57FA\u672C\u30E1\u30C8\u30EA\u30AF\u30B9\u3067\u547C\u3073\u51FA\u3057\u3001\u30C7\u30FC\u30BF\u306E\u53EF\u7528\u6027\u3092\u78BA\u8A8D`
|
|
70036
70080
|
}
|
|
70037
70081
|
});
|
|
70038
70082
|
|
|
@@ -70155,7 +70199,7 @@ var googleAnalyticsConnector = new ConnectorPlugin({
|
|
|
70155
70199
|
systemPrompt: {
|
|
70156
70200
|
en: `### Tools
|
|
70157
70201
|
|
|
70158
|
-
- \`google-
|
|
70202
|
+
- \`google-analytics-service-account_request\`: The only way to call the GA4 Data API. Use it to fetch metadata, run reports, or run realtime reports. See the GA4 Data API Reference below for available endpoints and request bodies.
|
|
70159
70203
|
|
|
70160
70204
|
### Business Logic
|
|
70161
70205
|
|
|
@@ -70223,7 +70267,7 @@ activeUsers, sessions, screenPageViews, bounceRate, averageSessionDuration, conv
|
|
|
70223
70267
|
- Relative: \`"today"\`, \`"yesterday"\`, \`"7daysAgo"\`, \`"30daysAgo"\``,
|
|
70224
70268
|
ja: `### \u30C4\u30FC\u30EB
|
|
70225
70269
|
|
|
70226
|
-
- \`google-
|
|
70270
|
+
- \`google-analytics-service-account_request\`: GA4 Data API\u3092\u547C\u3073\u51FA\u3059\u552F\u4E00\u306E\u624B\u6BB5\u3067\u3059\u3002\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u53D6\u5F97\u3001\u30EC\u30DD\u30FC\u30C8\u306E\u5B9F\u884C\u3001\u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u30EC\u30DD\u30FC\u30C8\u306E\u5B9F\u884C\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002\u5229\u7528\u53EF\u80FD\u306A\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u3068\u30EA\u30AF\u30A8\u30B9\u30C8\u30DC\u30C7\u30A3\u306F\u4E0B\u90E8\u306E\u300CGA4 Data API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9\u300D\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
|
70227
70271
|
|
|
70228
70272
|
### Business Logic
|
|
70229
70273
|
|
|
@@ -70773,7 +70817,15 @@ averageSessionDuration, conversions, totalRevenue
|
|
|
70773
70817
|
|
|
70774
70818
|
### Business Logic
|
|
70775
70819
|
|
|
70776
|
-
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables.
|
|
70820
|
+
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables and do NOT read \`INTERNAL_SQUADBASE_*\` env vars \u2014 the SDK takes care of OAuth.
|
|
70821
|
+
|
|
70822
|
+
SDK surface (client created via \`connection(connectionId)\`):
|
|
70823
|
+
- \`client.request(path, init?)\` \u2014 low-level authenticated fetch (\`path\` is appended to \`https://analyticsdata.googleapis.com/v1beta/\`).
|
|
70824
|
+
- \`client.runReport(request)\` \u2014 run a GA4 report.
|
|
70825
|
+
- \`client.runRealtimeReport(request)\` \u2014 run a realtime report.
|
|
70826
|
+
- \`client.getMetadata()\` \u2014 fetch available dimensions and metrics.
|
|
70827
|
+
|
|
70828
|
+
If a handler test fails with \`Connection proxy is not configured\`, retry \u2014 the sandbox is still initializing. Do NOT abandon the SDK and construct OAuth proxy URLs manually.
|
|
70777
70829
|
|
|
70778
70830
|
#### Example
|
|
70779
70831
|
|
|
@@ -70837,7 +70889,15 @@ averageSessionDuration, conversions, totalRevenue
|
|
|
70837
70889
|
|
|
70838
70890
|
### Business Logic
|
|
70839
70891
|
|
|
70840
|
-
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\
|
|
70892
|
+
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\u30BF SDK \u3092\u4F7F\u7528\u3057\u3066\u30CF\u30F3\u30C9\u30E9\u30B3\u30FC\u30C9\u3092\u8A18\u8FF0\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u74B0\u5883\u5909\u6570\u304B\u3089\u76F4\u63A5\u8A8D\u8A3C\u60C5\u5831\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002\`INTERNAL_SQUADBASE_*\` \u306E\u74B0\u5883\u5909\u6570\u3092\u4F7F\u3063\u3066\u624B\u52D5\u3067 OAuth \u30D7\u30ED\u30AD\u30B7\u3092\u53E9\u304F\u3053\u3068\u3082\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044 \u2014 SDK \u304C OAuth \u3092\u51E6\u7406\u3057\u307E\u3059\u3002
|
|
70893
|
+
|
|
70894
|
+
SDK\uFF08\`connection(connectionId)\` \u3067\u4F5C\u6210\u3057\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\uFF09:
|
|
70895
|
+
- \`client.request(path, init?)\` \u2014 \u4F4E\u30EC\u30D9\u30EB\u306E\u8A8D\u8A3C\u4ED8\u304D fetch\uFF08\`path\` \u306F \`https://analyticsdata.googleapis.com/v1beta/\` \u306B\u8FFD\u52A0\u3055\u308C\u307E\u3059\uFF09\u3002
|
|
70896
|
+
- \`client.runReport(request)\` \u2014 GA4 \u30EC\u30DD\u30FC\u30C8\u3092\u5B9F\u884C\u3002
|
|
70897
|
+
- \`client.runRealtimeReport(request)\` \u2014 \u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u30EC\u30DD\u30FC\u30C8\u3092\u5B9F\u884C\u3002
|
|
70898
|
+
- \`client.getMetadata()\` \u2014 \u5229\u7528\u53EF\u80FD\u306A\u30C7\u30A3\u30E1\u30F3\u30B7\u30E7\u30F3\u3068\u30E1\u30C8\u30EA\u30AF\u30B9\u3092\u53D6\u5F97\u3002
|
|
70899
|
+
|
|
70900
|
+
\u30CF\u30F3\u30C9\u30E9\u306E\u30C6\u30B9\u30C8\u304C \`Connection proxy is not configured\` \u3067\u5931\u6557\u3059\u308B\u5834\u5408\u306F\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u901A\u5E38\u306F\u30B5\u30F3\u30C9\u30DC\u30C3\u30AF\u30B9\u306E\u521D\u671F\u5316\u4E2D\u306B\u8D77\u304D\u307E\u3059\u3002SDK \u3092\u8AE6\u3081\u3066 OAuth \u30D7\u30ED\u30AD\u30B7\u306E URL \u3092\u81EA\u5206\u3067\u7D44\u307F\u7ACB\u3066\u308B\u3053\u3068\u306F **\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044**\u3002
|
|
70841
70901
|
|
|
70842
70902
|
#### Example
|
|
70843
70903
|
|
|
@@ -71101,19 +71161,21 @@ var listCalendarsTool = new ConnectorTool({
|
|
|
71101
71161
|
});
|
|
71102
71162
|
|
|
71103
71163
|
// ../connectors/src/connectors/google-calendar/setup.ts
|
|
71104
|
-
var listCalendarsToolName = `google-
|
|
71164
|
+
var listCalendarsToolName = `google-calendar-service-account_${listCalendarsTool.name}`;
|
|
71105
71165
|
var googleCalendarOnboarding = new ConnectorOnboarding({
|
|
71106
71166
|
connectionSetupInstructions: {
|
|
71107
71167
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Google Calendar\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002\u63A5\u7D9A\u4F5C\u6210\u6642\u306B\u306F\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8JSON\u306E\u307F\u304C\u8A2D\u5B9A\u6E08\u307F\u3067\u3001\u5BFE\u8C61\u30E6\u30FC\u30B6\u30FC\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3084\u30AB\u30EC\u30F3\u30C0\u30FCID\u306F\u3053\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u4E2D\u306B\u53D6\u5F97\u3057\u307E\u3059\u3002
|
|
71108
71168
|
|
|
71109
|
-
1. \`askUserQuestion\` \u3067\u30E6\u30FC\u30B6\u30FC\u306B\u3001\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u304CDomain-wide Delegation\u3067\u4EE3\u7406\u30A2\u30AF\u30BB\u30B9\u3059\u308BGoogle Workspace\u30E6\u30FC\u30B6\u30FC\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u30D2\u30A2\u30EA\u30F3\u30B0\u3059\
|
|
71169
|
+
1. \`askUserQuestion\` \u3067\u30E6\u30FC\u30B6\u30FC\u306B\u3001\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u304CDomain-wide Delegation\u3067\u4EE3\u7406\u30A2\u30AF\u30BB\u30B9\u3059\u308BGoogle Workspace\u30E6\u30FC\u30B6\u30FC\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u30D2\u30A2\u30EA\u30F3\u30B0\u3059\u308B:
|
|
71110
71170
|
- \`question\`: \u300C\u30A2\u30AF\u30BB\u30B9\u3057\u305F\u3044\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u6301\u3064\u30E6\u30FC\u30B6\u30FC\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u8907\u6570\u3042\u308B\u5834\u5408\u306F\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u5165\u529B\u53EF\uFF09\u300D
|
|
71111
71171
|
- \`header\`: \u300C\u30E1\u30FC\u30EB\u5165\u529B\u300D
|
|
71112
|
-
- \`options\`: \`[
|
|
71172
|
+
- \`options\`: \`[]\`\uFF08\u9078\u629E\u80A2\u306A\u3057\u30FB\u81EA\u7531\u5165\u529B\u306E\u307F\uFF09
|
|
71173
|
+
- \`allowFreeText\`: \`true\`
|
|
71113
71174
|
2. \u30E6\u30FC\u30B6\u30FC\u304B\u3089\u53D7\u3051\u53D6\u3063\u305F\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\uFF08\u30AB\u30F3\u30DE\u533A\u5207\u308A\u5BFE\u5FDC\uFF09\u3092 \`updateConnectionParameters\` \u3067\u4FDD\u5B58\u3059\u308B:
|
|
71114
71175
|
- \`parameterSlug\`: \`"impersonate-email"\`
|
|
71115
71176
|
- \`options\`: \`[{ value: <\u5165\u529B\u3055\u308C\u305F\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u6587\u5B57\u5217>, label: <\u540C\u3058\u5024> }]\`\uFF081\u4EF6\u306E\u307F\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u81EA\u52D5\u9078\u629E\u3055\u308C\u308B\uFF09
|
|
71116
|
-
3. \`${listCalendarsToolName}\` \u3092\u547C\u3073\u51FA\u3057\u3001\u4FDD\u5B58\u3057\u305F\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3067\u30A2\u30AF\u30BB\u30B9\u53EF\u80FD\u306A\u30AB\u30EC\u30F3\u30C0\u30FC\u4E00\u89A7\u3092\u53D6\u5F97\u3059\u308B
|
|
71177
|
+
3. \`${listCalendarsToolName}\` \u3092\u547C\u3073\u51FA\u3057\u3001\u4FDD\u5B58\u3057\u305F\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3067\u30A2\u30AF\u30BB\u30B9\u53EF\u80FD\u306A\u30AB\u30EC\u30F3\u30C0\u30FC\u4E00\u89A7\u3092\u53D6\u5F97\u3059\u308B\u3002
|
|
71178
|
+
- \`errors\` \u306B\u30A8\u30E9\u30FC\u304C\u3042\u308A \`calendars\` \u304C\u7A7A\u306E\u5834\u5408\uFF08\u3059\u3079\u3066\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3067\u5931\u6557\uFF09\u3001\u5165\u529B\u3055\u308C\u305F\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304C\u5B58\u5728\u3057\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308B\u3002\`askUserQuestion\` \u3067\u300C{\u5165\u529B\u3057\u305F\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9} \u306E\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30A2\u30C9\u30EC\u30B9\u306B\u8AA4\u308A\u304C\u3042\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u4F3C\u305F\u30A2\u30C9\u30EC\u30B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u304B\uFF1F\u300D\u3068\u805E\u304D\u8FD4\u3057\u3001\u30B9\u30C6\u30C3\u30D72\u304B\u3089\u518D\u5EA6\u5B9F\u884C\u3059\u308B
|
|
71117
71179
|
4. \u8FD4\u5374\u3055\u308C\u305F \`calendars\` \u914D\u5217\uFF08\u5404\u8981\u7D20: \`{ impersonateEmail, id, summary, primary, accessRole }\`\uFF09\u3092\u5143\u306B\u300C\u4F7F\u7528\u3059\u308B\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u300D\u3068\u77ED\u304F\u4F1D\u3048\u305F\u4E0A\u3067\u3001\`updateConnectionParameters\` \u3092\u547C\u3073\u51FA\u3059:
|
|
71118
71180
|
- \`parameterSlug\`: \`"calendar-id"\`
|
|
71119
71181
|
- \`options\`: \u5404 option \u306E \`label\` \u306F \`\u30AB\u30EC\u30F3\u30C0\u30FC\u540D (owner: impersonateEmail)\` \u306E\u5F62\u5F0F\u3001\`value\` \u306F\u30AB\u30EC\u30F3\u30C0\u30FCID
|
|
@@ -71135,11 +71197,13 @@ var googleCalendarOnboarding = new ConnectorOnboarding({
|
|
|
71135
71197
|
1. Call \`askUserQuestion\` to ask the user for the Google Workspace user email the service account will impersonate via Domain-wide Delegation:
|
|
71136
71198
|
- \`question\`: "Please enter the email address of the user whose calendar you want to access (comma-separated list allowed for multiple users)"
|
|
71137
71199
|
- \`header\`: "Email input"
|
|
71138
|
-
- \`options\`: \`[
|
|
71200
|
+
- \`options\`: \`[]\` (no preset choices \u2014 free text only)
|
|
71201
|
+
- \`allowFreeText\`: \`true\`
|
|
71139
71202
|
2. Save the email(s) the user provided (comma-separated supported) via \`updateConnectionParameters\`:
|
|
71140
71203
|
- \`parameterSlug\`: \`"impersonate-email"\`
|
|
71141
71204
|
- \`options\`: \`[{ value: <the email string entered>, label: <same value> }]\` (a single option is auto-selected)
|
|
71142
|
-
3. Call \`${listCalendarsToolName}\` to list calendars accessible via the saved email(s)
|
|
71205
|
+
3. Call \`${listCalendarsToolName}\` to list calendars accessible via the saved email(s).
|
|
71206
|
+
- If \`errors\` is non-empty and \`calendars\` is empty (all emails failed), the entered address may not exist. Use \`askUserQuestion\` to ask: "Could not access the calendar for {entered email}. The address may be incorrect \u2014 did you mean a similar address?" Then re-run from step 2 with the new input
|
|
71143
71207
|
4. Using the returned \`calendars\` array (each item: \`{ impersonateEmail, id, summary, primary, accessRole }\`), briefly say "Please select a calendar." then call \`updateConnectionParameters\`:
|
|
71144
71208
|
- \`parameterSlug\`: \`"calendar-id"\`
|
|
71145
71209
|
- \`options\`: Each option's \`label\` should be \`Calendar Name (owner: impersonateEmail)\`, \`value\` should be the calendar ID
|
|
@@ -71158,12 +71222,12 @@ var googleCalendarOnboarding = new ConnectorOnboarding({
|
|
|
71158
71222
|
- Write only 1 sentence between tool calls, then immediately call the next tool. Skip unnecessary explanations and proceed efficiently`
|
|
71159
71223
|
},
|
|
71160
71224
|
dataOverviewInstructions: {
|
|
71161
|
-
en: `1. Call google-
|
|
71162
|
-
2. Call google-
|
|
71163
|
-
3. Call google-
|
|
71164
|
-
ja: `1. google-
|
|
71165
|
-
2. google-
|
|
71166
|
-
3. google-
|
|
71225
|
+
en: `1. Call google-calendar-service-account_request with GET /calendars/{calendarId} to get the default calendar's metadata
|
|
71226
|
+
2. Call google-calendar-service-account_request with GET /users/me/calendarList to list all accessible calendars
|
|
71227
|
+
3. Call google-calendar-service-account_request with GET /calendars/{calendarId}/events with query params timeMin (RFC3339) and maxResults=10 to sample upcoming events`,
|
|
71228
|
+
ja: `1. google-calendar-service-account_request \u3067 GET /calendars/{calendarId} \u3092\u547C\u3073\u51FA\u3057\u3001\u30C7\u30D5\u30A9\u30EB\u30C8\u30AB\u30EC\u30F3\u30C0\u30FC\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u53D6\u5F97
|
|
71229
|
+
2. google-calendar-service-account_request \u3067 GET /users/me/calendarList \u3092\u547C\u3073\u51FA\u3057\u3001\u30A2\u30AF\u30BB\u30B9\u53EF\u80FD\u306A\u5168\u30AB\u30EC\u30F3\u30C0\u30FC\u306E\u4E00\u89A7\u3092\u53D6\u5F97
|
|
71230
|
+
3. google-calendar-service-account_request \u3067 GET /calendars/{calendarId}/events \u3092\u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF timeMin\uFF08RFC3339\u5F62\u5F0F\uFF09\u3068 maxResults=10 \u3067\u547C\u3073\u51FA\u3057\u3001\u76F4\u8FD1\u306E\u30A4\u30D9\u30F3\u30C8\u3092\u30B5\u30F3\u30D7\u30EA\u30F3\u30B0`
|
|
71167
71231
|
}
|
|
71168
71232
|
});
|
|
71169
71233
|
|
|
@@ -71303,7 +71367,7 @@ var googleCalendarConnector = new ConnectorPlugin({
|
|
|
71303
71367
|
systemPrompt: {
|
|
71304
71368
|
en: `### Tools
|
|
71305
71369
|
|
|
71306
|
-
- \`google-
|
|
71370
|
+
- \`google-calendar-service-account_request\`: The only way to call the Google Calendar API. Use it to list calendars, get events, and manage calendar data. Authentication is handled automatically using a service account with Domain-wide Delegation \u2014 the service account impersonates the user configured on the connection (\`impersonate-email\` parameter). The {calendarId} placeholder in paths is automatically replaced with the configured default calendar ID. Pass an optional \`subject\` only if you need to override the configured user for a specific request.
|
|
71307
71371
|
|
|
71308
71372
|
### Business Logic
|
|
71309
71373
|
|
|
@@ -71374,7 +71438,7 @@ export default async function handler(c: Context) {
|
|
|
71374
71438
|
- The default calendar ID is "primary" if not configured`,
|
|
71375
71439
|
ja: `### \u30C4\u30FC\u30EB
|
|
71376
71440
|
|
|
71377
|
-
- \`google-
|
|
71441
|
+
- \`google-calendar-service-account_request\`: Google Calendar API\u3092\u547C\u3073\u51FA\u3059\u552F\u4E00\u306E\u624B\u6BB5\u3067\u3059\u3002\u30AB\u30EC\u30F3\u30C0\u30FC\u306E\u4E00\u89A7\u53D6\u5F97\u3001\u30A4\u30D9\u30F3\u30C8\u306E\u53D6\u5F97\u3001\u30AB\u30EC\u30F3\u30C0\u30FC\u30C7\u30FC\u30BF\u306E\u7BA1\u7406\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\uFF0BDomain-wide Delegation\u3067\u8A8D\u8A3C\u304C\u81EA\u52D5\u7684\u306B\u51E6\u7406\u3055\u308C\u3001\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306B\u8A2D\u5B9A\u3055\u308C\u305F\u30E6\u30FC\u30B6\u30FC\uFF08\`impersonate-email\`\u30D1\u30E9\u30E1\u30FC\u30BF\uFF09\u3068\u3057\u3066\u52D5\u4F5C\u3057\u307E\u3059\u3002\u30D1\u30B9\u5185\u306E{calendarId}\u30D7\u30EC\u30FC\u30B9\u30DB\u30EB\u30C0\u30FC\u306F\u8A2D\u5B9A\u6E08\u307F\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u30AB\u30EC\u30F3\u30C0\u30FCID\u3067\u81EA\u52D5\u7684\u306B\u7F6E\u63DB\u3055\u308C\u307E\u3059\u3002\u7279\u5B9A\u30EA\u30AF\u30A8\u30B9\u30C8\u3067\u8A2D\u5B9A\u30E6\u30FC\u30B6\u30FC\u3092\u4E0A\u66F8\u304D\u3057\u305F\u3044\u5834\u5408\u306E\u307F\u3001\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\`subject\`\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
|
71378
71442
|
|
|
71379
71443
|
### Business Logic
|
|
71380
71444
|
|
|
@@ -71797,7 +71861,15 @@ var googleCalendarOauthConnector = new ConnectorPlugin({
|
|
|
71797
71861
|
|
|
71798
71862
|
### Business Logic
|
|
71799
71863
|
|
|
71800
|
-
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables.
|
|
71864
|
+
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables and do NOT read \`INTERNAL_SQUADBASE_*\` env vars \u2014 the SDK takes care of OAuth.
|
|
71865
|
+
|
|
71866
|
+
SDK surface (client created via \`connection(connectionId)\`):
|
|
71867
|
+
- \`client.request(path, init?)\` \u2014 low-level authenticated fetch (\`path\` is appended to \`https://www.googleapis.com/calendar/v3\`; \`{calendarId}\` placeholders are auto-replaced).
|
|
71868
|
+
- \`client.listCalendars()\` \u2014 list calendars accessible by the OAuth user.
|
|
71869
|
+
- \`client.listEvents(options?, calendarId?)\` \u2014 list events with optional filters.
|
|
71870
|
+
- \`client.getEvent(eventId, calendarId?)\` \u2014 fetch a single event.
|
|
71871
|
+
|
|
71872
|
+
If a handler test fails with \`Connection proxy is not configured\`, retry \u2014 the sandbox is still initializing. Do NOT abandon the SDK and construct OAuth proxy URLs manually.
|
|
71801
71873
|
|
|
71802
71874
|
#### Example
|
|
71803
71875
|
|
|
@@ -71854,7 +71926,15 @@ console.log(event.summary, event.attendees);
|
|
|
71854
71926
|
|
|
71855
71927
|
### Business Logic
|
|
71856
71928
|
|
|
71857
|
-
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\
|
|
71929
|
+
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\u30BF SDK \u3092\u4F7F\u7528\u3057\u3066\u30CF\u30F3\u30C9\u30E9\u30B3\u30FC\u30C9\u3092\u8A18\u8FF0\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u74B0\u5883\u5909\u6570\u304B\u3089\u76F4\u63A5\u8A8D\u8A3C\u60C5\u5831\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002\`INTERNAL_SQUADBASE_*\` \u306E\u74B0\u5883\u5909\u6570\u3092\u4F7F\u3063\u3066\u624B\u52D5\u3067 OAuth \u30D7\u30ED\u30AD\u30B7\u3092\u53E9\u304F\u3053\u3068\u3082\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044 \u2014 SDK \u304C OAuth \u3092\u51E6\u7406\u3057\u307E\u3059\u3002
|
|
71930
|
+
|
|
71931
|
+
SDK\uFF08\`connection(connectionId)\` \u3067\u4F5C\u6210\u3057\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\uFF09:
|
|
71932
|
+
- \`client.request(path, init?)\` \u2014 \u4F4E\u30EC\u30D9\u30EB\u306E\u8A8D\u8A3C\u4ED8\u304D fetch\uFF08\`path\` \u306F \`https://www.googleapis.com/calendar/v3\` \u306B\u8FFD\u52A0\u3055\u308C\u3001\`{calendarId}\` \u30D7\u30EC\u30FC\u30B9\u30DB\u30EB\u30C0\u306F\u81EA\u52D5\u7F6E\u63DB\u3055\u308C\u307E\u3059\uFF09\u3002
|
|
71933
|
+
- \`client.listCalendars()\` \u2014 OAuth \u30E6\u30FC\u30B6\u30FC\u304C\u30A2\u30AF\u30BB\u30B9\u53EF\u80FD\u306A\u30AB\u30EC\u30F3\u30C0\u30FC\u4E00\u89A7\u3092\u53D6\u5F97\u3002
|
|
71934
|
+
- \`client.listEvents(options?, calendarId?)\` \u2014 \u30D5\u30A3\u30EB\u30BF\u30FC\u4ED8\u304D\u3067\u30A4\u30D9\u30F3\u30C8\u4E00\u89A7\u3092\u53D6\u5F97\u3002
|
|
71935
|
+
- \`client.getEvent(eventId, calendarId?)\` \u2014 \u5358\u4E00\u30A4\u30D9\u30F3\u30C8\u3092\u53D6\u5F97\u3002
|
|
71936
|
+
|
|
71937
|
+
\u30CF\u30F3\u30C9\u30E9\u306E\u30C6\u30B9\u30C8\u304C \`Connection proxy is not configured\` \u3067\u5931\u6557\u3059\u308B\u5834\u5408\u306F\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u901A\u5E38\u306F\u30B5\u30F3\u30C9\u30DC\u30C3\u30AF\u30B9\u306E\u521D\u671F\u5316\u4E2D\u306B\u8D77\u304D\u307E\u3059\u3002SDK \u3092\u8AE6\u3081\u3066 OAuth \u30D7\u30ED\u30AD\u30B7\u306E URL \u3092\u81EA\u5206\u3067\u7D44\u307F\u7ACB\u3066\u308B\u3053\u3068\u306F **\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044**\u3002
|
|
71858
71938
|
|
|
71859
71939
|
#### Example
|
|
71860
71940
|
|
|
@@ -71909,10 +71989,10 @@ console.log(event.summary, event.attendees);
|
|
|
71909
71989
|
// ../connectors/src/connectors/google-docs/setup.ts
|
|
71910
71990
|
var googleDocsOnboarding = new ConnectorOnboarding({
|
|
71911
71991
|
dataOverviewInstructions: {
|
|
71912
|
-
en: `1. Create a new document with google-
|
|
71913
|
-
2. Call google-
|
|
71914
|
-
ja: `1. google-
|
|
71915
|
-
2. google-
|
|
71992
|
+
en: `1. Create a new document with google-docs-oauth_request (POST with body { title: "..." }) or use an existing document ID.
|
|
71993
|
+
2. Call google-docs-oauth_request with GET /{documentId} to fetch the document's content and metadata.`,
|
|
71994
|
+
ja: `1. google-docs-oauth_request \u3092 POST\uFF08Body: { title: "..." }\uFF09\u3067\u547C\u3073\u51FA\u3057\u3066\u65B0\u3057\u3044\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u4F5C\u6210\u3059\u308B\u304B\u3001\u65E2\u5B58\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8ID\u3092\u5229\u7528\u3057\u307E\u3059\u3002
|
|
71995
|
+
2. google-docs-oauth_request \u3067 GET /{documentId} \u3092\u547C\u3073\u51FA\u3057\u3001\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u5185\u5BB9\u3068\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u53D6\u5F97\u3057\u307E\u3059\u3002`
|
|
71916
71996
|
}
|
|
71917
71997
|
});
|
|
71918
71998
|
|
|
@@ -72042,7 +72122,7 @@ var googleDocsConnector = new ConnectorPlugin({
|
|
|
72042
72122
|
authType: AUTH_TYPES.OAUTH,
|
|
72043
72123
|
name: "Google Docs",
|
|
72044
72124
|
description: "Connect to Google Docs for document data access and creation using OAuth.",
|
|
72045
|
-
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/
|
|
72125
|
+
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6vvcGJisvXjOumeTvswjzf/e9bb39e453cc0b71a20f26019b23b0d2/google_docs.png",
|
|
72046
72126
|
parameters: parameters16,
|
|
72047
72127
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
72048
72128
|
onboarding: googleDocsOnboarding,
|
|
@@ -72055,9 +72135,11 @@ var googleDocsConnector = new ConnectorPlugin({
|
|
|
72055
72135
|
]
|
|
72056
72136
|
},
|
|
72057
72137
|
systemPrompt: {
|
|
72058
|
-
en: `### Tools
|
|
72138
|
+
en: `### Tools (setup-time only)
|
|
72139
|
+
|
|
72140
|
+
- \`google-docs-oauth_request\`: Call the Google Docs API directly during setup / data overview. Supports read and write operations. Use it to get document content, create new documents, and modify document content via batchUpdate. Authentication is configured automatically via OAuth.
|
|
72059
72141
|
|
|
72060
|
-
|
|
72142
|
+
> **Important**: The \`google-docs-oauth_request\` tool is only available at setup time. Inside server-logic handlers, use the SDK (\`connection(id).createDocument\`, etc.) \u2014 the SDK's fetch is already wired through the OAuth proxy. **Do NOT** hand-roll HTTP calls to \`_sqcore/connections/*/request\` from a handler.
|
|
72061
72143
|
|
|
72062
72144
|
### Google Docs API Reference
|
|
72063
72145
|
|
|
@@ -72086,7 +72168,15 @@ var googleDocsConnector = new ConnectorPlugin({
|
|
|
72086
72168
|
|
|
72087
72169
|
### Business Logic
|
|
72088
72170
|
|
|
72089
|
-
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables.
|
|
72171
|
+
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables and do NOT read \`INTERNAL_SQUADBASE_*\` env vars \u2014 the SDK takes care of OAuth.
|
|
72172
|
+
|
|
72173
|
+
SDK surface (client created via \`connection(connectionId)\`):
|
|
72174
|
+
- \`client.request(path, init?)\` \u2014 low-level authenticated fetch (\`path\` is appended to \`https://docs.googleapis.com/v1/documents\`).
|
|
72175
|
+
- \`client.getDocument(documentId)\` \u2014 fetch document content and metadata.
|
|
72176
|
+
- \`client.createDocument(title)\` \u2014 create a new document.
|
|
72177
|
+
- \`client.batchUpdate(documentId, requests)\` \u2014 apply one or more requests (insertText / updateTextStyle / etc.).
|
|
72178
|
+
|
|
72179
|
+
If a handler test fails with \`Connection proxy is not configured\`, retry \u2014 the sandbox is still initializing. Do NOT abandon the SDK and construct OAuth proxy URLs manually.
|
|
72090
72180
|
|
|
72091
72181
|
#### Example
|
|
72092
72182
|
|
|
@@ -72114,9 +72204,11 @@ await docs.batchUpdate(documentId, [
|
|
|
72114
72204
|
},
|
|
72115
72205
|
]);
|
|
72116
72206
|
\`\`\``,
|
|
72117
|
-
ja: `### \u30C4\u30FC\u30EB
|
|
72207
|
+
ja: `### \u30C4\u30FC\u30EB\uFF08\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306E\u307F\uFF09
|
|
72118
72208
|
|
|
72119
|
-
- \`google-
|
|
72209
|
+
- \`google-docs-oauth_request\`: \u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3084\u30C7\u30FC\u30BF\u6982\u8981\u628A\u63E1\u6642\u306B Google Docs API \u3092\u76F4\u63A5\u53E9\u304F\u30C4\u30FC\u30EB\u3067\u3059\u3002\u8AAD\u307F\u53D6\u308A\u3068\u66F8\u304D\u8FBC\u307F\u306E\u4E21\u65B9\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5185\u5BB9\u306E\u53D6\u5F97\u3001\u65B0\u3057\u3044\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u4F5C\u6210\u3001batchUpdate \u306B\u3088\u308B\u5185\u5BB9\u5909\u66F4\u306A\u3069\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002OAuth \u7D4C\u7531\u3067\u8A8D\u8A3C\u306F\u81EA\u52D5\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002
|
|
72210
|
+
|
|
72211
|
+
> **\u91CD\u8981**: \`google-docs-oauth_request\` \u306F\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306E\u307F\u5229\u7528\u53EF\u80FD\u3067\u3059\u3002\u30B5\u30FC\u30D0\u30FC\u30ED\u30B8\u30C3\u30AF\u306E\u30CF\u30F3\u30C9\u30E9\u5185\u3067\u306F\u5FC5\u305A SDK\uFF08\`connection(id).createDocument\` \u306A\u3069\uFF09\u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002SDK \u306E fetch \u306F OAuth \u30D7\u30ED\u30AD\u30B7\u7D4C\u7531\u3067\u65E2\u306B\u914D\u7DDA\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30CF\u30F3\u30C9\u30E9\u304B\u3089 \`_sqcore/connections/*/request\` \u3092\u624B\u66F8\u304D\u3067\u547C\u3073\u51FA\u3055\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
|
|
72120
72212
|
|
|
72121
72213
|
### Google Docs API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
72122
72214
|
|
|
@@ -72145,7 +72237,15 @@ await docs.batchUpdate(documentId, [
|
|
|
72145
72237
|
|
|
72146
72238
|
### Business Logic
|
|
72147
72239
|
|
|
72148
|
-
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\
|
|
72240
|
+
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\u30BF SDK \u3092\u4F7F\u7528\u3057\u3066\u30CF\u30F3\u30C9\u30E9\u30B3\u30FC\u30C9\u3092\u8A18\u8FF0\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u74B0\u5883\u5909\u6570\u304B\u3089\u76F4\u63A5\u8A8D\u8A3C\u60C5\u5831\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002\`INTERNAL_SQUADBASE_*\` \u306E\u74B0\u5883\u5909\u6570\u3092\u4F7F\u3063\u3066\u624B\u52D5\u3067 OAuth \u30D7\u30ED\u30AD\u30B7\u3092\u53E9\u304F\u3053\u3068\u3082\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044 \u2014 SDK \u304C OAuth \u3092\u51E6\u7406\u3057\u307E\u3059\u3002
|
|
72241
|
+
|
|
72242
|
+
SDK\uFF08\`connection(connectionId)\` \u3067\u4F5C\u6210\u3057\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\uFF09:
|
|
72243
|
+
- \`client.request(path, init?)\` \u2014 \u4F4E\u30EC\u30D9\u30EB\u306E\u8A8D\u8A3C\u4ED8\u304D fetch\uFF08\`path\` \u306F \`https://docs.googleapis.com/v1/documents\` \u306B\u8FFD\u52A0\u3055\u308C\u307E\u3059\uFF09\u3002
|
|
72244
|
+
- \`client.getDocument(documentId)\` \u2014 \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u5185\u5BB9\u3068\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u53D6\u5F97\u3002
|
|
72245
|
+
- \`client.createDocument(title)\` \u2014 \u65B0\u3057\u3044\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u4F5C\u6210\u3002
|
|
72246
|
+
- \`client.batchUpdate(documentId, requests)\` \u2014 insertText / updateTextStyle \u306A\u3069\u306E\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u307E\u3068\u3081\u3066\u9069\u7528\u3002
|
|
72247
|
+
|
|
72248
|
+
\u30CF\u30F3\u30C9\u30E9\u306E\u30C6\u30B9\u30C8\u304C \`Connection proxy is not configured\` \u3067\u5931\u6557\u3059\u308B\u5834\u5408\u306F\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u901A\u5E38\u306F\u30B5\u30F3\u30C9\u30DC\u30C3\u30AF\u30B9\u306E\u521D\u671F\u5316\u4E2D\u306B\u8D77\u304D\u307E\u3059\u3002SDK \u3092\u8AE6\u3081\u3066 OAuth \u30D7\u30ED\u30AD\u30B7\u306E URL \u3092\u81EA\u5206\u3067\u7D44\u307F\u7ACB\u3066\u308B\u3053\u3068\u306F **\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044**\u3002
|
|
72149
72249
|
|
|
72150
72250
|
#### Example
|
|
72151
72251
|
|
|
@@ -72180,10 +72280,10 @@ await docs.batchUpdate(documentId, [
|
|
|
72180
72280
|
// ../connectors/src/connectors/google-drive/setup.ts
|
|
72181
72281
|
var googleDriveOnboarding = new ConnectorOnboarding({
|
|
72182
72282
|
dataOverviewInstructions: {
|
|
72183
|
-
en: `1. Call google-
|
|
72184
|
-
2. Call google-
|
|
72185
|
-
ja: `1. google-
|
|
72186
|
-
2. google-
|
|
72283
|
+
en: `1. Call google-drive-oauth_request with GET /files?pageSize=20&fields=files(id,name,mimeType,modifiedTime)&orderBy=modifiedTime desc to list recent files
|
|
72284
|
+
2. Call google-drive-oauth_request with GET /about?fields=user,storageQuota to get account info and storage usage`,
|
|
72285
|
+
ja: `1. google-drive-oauth_request \u3067 GET /files?pageSize=20&fields=files(id,name,mimeType,modifiedTime)&orderBy=modifiedTime desc \u3092\u547C\u3073\u51FA\u3057\u3001\u6700\u8FD1\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4E00\u89A7\u8868\u793A
|
|
72286
|
+
2. google-drive-oauth_request \u3067 GET /about?fields=user,storageQuota \u3092\u547C\u3073\u51FA\u3057\u3001\u30A2\u30AB\u30A6\u30F3\u30C8\u60C5\u5831\u3068\u30B9\u30C8\u30EC\u30FC\u30B8\u4F7F\u7528\u91CF\u3092\u53D6\u5F97`
|
|
72187
72287
|
}
|
|
72188
72288
|
});
|
|
72189
72289
|
|
|
@@ -72327,9 +72427,11 @@ var googleDriveConnector = new ConnectorPlugin({
|
|
|
72327
72427
|
]
|
|
72328
72428
|
},
|
|
72329
72429
|
systemPrompt: {
|
|
72330
|
-
en: `### Tools
|
|
72430
|
+
en: `### Tools (setup-time only)
|
|
72331
72431
|
|
|
72332
|
-
- \`google-
|
|
72432
|
+
- \`google-drive-oauth_request\`: Send authenticated requests to the Google Drive API v3 during setup / data overview. Supports GET, POST, and PATCH methods. Authentication is configured automatically via OAuth.
|
|
72433
|
+
|
|
72434
|
+
> **Important**: The \`google-drive-oauth_request\` tool is only available at setup time. Inside server-logic handlers, use the SDK (\`connection(id).listFiles\`, etc.) \u2014 the SDK's fetch is already wired through the OAuth proxy. **Do NOT** hand-roll HTTP calls to \`_sqcore/connections/*/request\` from a handler.
|
|
72333
72435
|
|
|
72334
72436
|
### Google Drive API Reference
|
|
72335
72437
|
|
|
@@ -72396,7 +72498,21 @@ var googleDriveConnector = new ConnectorPlugin({
|
|
|
72396
72498
|
|
|
72397
72499
|
### Business Logic
|
|
72398
72500
|
|
|
72399
|
-
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables.
|
|
72501
|
+
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables and do NOT read \`INTERNAL_SQUADBASE_*\` env vars \u2014 the SDK takes care of OAuth.
|
|
72502
|
+
|
|
72503
|
+
SDK surface (client created via \`connection(connectionId)\`):
|
|
72504
|
+
- \`client.request(path, init?)\` \u2014 low-level authenticated fetch (\`path\` is appended to \`https://www.googleapis.com/drive/v3\`).
|
|
72505
|
+
- \`client.listFiles(options?)\` \u2014 list files with optional \`query\`, \`pageSize\`, \`pageToken\`, \`orderBy\`, \`fields\`.
|
|
72506
|
+
- \`client.getFile(fileId, fields?)\` \u2014 get file metadata.
|
|
72507
|
+
- \`client.createFile(options)\` \u2014 create a file or folder (metadata only).
|
|
72508
|
+
- \`client.updateFile(fileId, metadata, addParents?, removeParents?)\` \u2014 rename / move / update.
|
|
72509
|
+
- \`client.copyFile(fileId, name, parents?)\` \u2014 copy a file.
|
|
72510
|
+
- \`client.downloadFile(fileId)\` \u2014 download binary content (returns a \`Response\`).
|
|
72511
|
+
- \`client.exportFile(fileId, mimeType)\` \u2014 export a Google Workspace file to another format.
|
|
72512
|
+
- \`client.shareFile(fileId, type, role, emailAddress)\` \u2014 add a permission.
|
|
72513
|
+
- \`client.listPermissions(fileId)\` \u2014 list permissions on a file.
|
|
72514
|
+
|
|
72515
|
+
If a handler test fails with \`Connection proxy is not configured\`, retry \u2014 the sandbox is still initializing. Do NOT abandon the SDK and construct OAuth proxy URLs manually.
|
|
72400
72516
|
|
|
72401
72517
|
#### Example
|
|
72402
72518
|
|
|
@@ -72447,9 +72563,11 @@ const copy = await drive.copyFile("fileId123", "Backup Copy");
|
|
|
72447
72563
|
// Move a file to a different folder
|
|
72448
72564
|
await drive.updateFile("fileId123", {}, "newFolderId", "oldFolderId");
|
|
72449
72565
|
\`\`\``,
|
|
72450
|
-
ja: `### \u30C4\u30FC\u30EB
|
|
72566
|
+
ja: `### \u30C4\u30FC\u30EB\uFF08\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306E\u307F\uFF09
|
|
72451
72567
|
|
|
72452
|
-
- \`google-
|
|
72568
|
+
- \`google-drive-oauth_request\`: \u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3084\u30C7\u30FC\u30BF\u6982\u8981\u628A\u63E1\u6642\u306B Google Drive API v3 \u3078\u8A8D\u8A3C\u6E08\u307F\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u9001\u4FE1\u3057\u307E\u3059\u3002GET, POST, PATCH \u30E1\u30BD\u30C3\u30C9\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002OAuth \u7D4C\u7531\u3067\u8A8D\u8A3C\u306F\u81EA\u52D5\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002
|
|
72569
|
+
|
|
72570
|
+
> **\u91CD\u8981**: \`google-drive-oauth_request\` \u306F\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306E\u307F\u5229\u7528\u53EF\u80FD\u3067\u3059\u3002\u30B5\u30FC\u30D0\u30FC\u30ED\u30B8\u30C3\u30AF\u306E\u30CF\u30F3\u30C9\u30E9\u5185\u3067\u306F\u5FC5\u305A SDK\uFF08\`connection(id).listFiles\` \u306A\u3069\uFF09\u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002SDK \u306E fetch \u306F OAuth \u30D7\u30ED\u30AD\u30B7\u7D4C\u7531\u3067\u65E2\u306B\u914D\u7DDA\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30CF\u30F3\u30C9\u30E9\u304B\u3089 \`_sqcore/connections/*/request\` \u3092\u624B\u66F8\u304D\u3067\u547C\u3073\u51FA\u3055\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
|
|
72453
72571
|
|
|
72454
72572
|
### Google Drive API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
72455
72573
|
|
|
@@ -72516,7 +72634,21 @@ await drive.updateFile("fileId123", {}, "newFolderId", "oldFolderId");
|
|
|
72516
72634
|
|
|
72517
72635
|
### Business Logic
|
|
72518
72636
|
|
|
72519
|
-
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\
|
|
72637
|
+
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\u30BF SDK \u3092\u4F7F\u7528\u3057\u3066\u30CF\u30F3\u30C9\u30E9\u30B3\u30FC\u30C9\u3092\u8A18\u8FF0\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u74B0\u5883\u5909\u6570\u304B\u3089\u76F4\u63A5\u8A8D\u8A3C\u60C5\u5831\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002\`INTERNAL_SQUADBASE_*\` \u306E\u74B0\u5883\u5909\u6570\u3092\u4F7F\u3063\u3066\u624B\u52D5\u3067 OAuth \u30D7\u30ED\u30AD\u30B7\u3092\u53E9\u304F\u3053\u3068\u3082\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044 \u2014 SDK \u304C OAuth \u3092\u51E6\u7406\u3057\u307E\u3059\u3002
|
|
72638
|
+
|
|
72639
|
+
SDK\uFF08\`connection(connectionId)\` \u3067\u4F5C\u6210\u3057\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\uFF09:
|
|
72640
|
+
- \`client.request(path, init?)\` \u2014 \u4F4E\u30EC\u30D9\u30EB\u306E\u8A8D\u8A3C\u4ED8\u304D fetch\uFF08\`path\` \u306F \`https://www.googleapis.com/drive/v3\` \u306B\u8FFD\u52A0\u3055\u308C\u307E\u3059\uFF09\u3002
|
|
72641
|
+
- \`client.listFiles(options?)\` \u2014 \`query\`, \`pageSize\`, \`pageToken\`, \`orderBy\`, \`fields\` \u30AA\u30D7\u30B7\u30E7\u30F3\u4ED8\u304D\u3067\u30D5\u30A1\u30A4\u30EB\u4E00\u89A7\u3092\u53D6\u5F97\u3002
|
|
72642
|
+
- \`client.getFile(fileId, fields?)\` \u2014 \u30D5\u30A1\u30A4\u30EB\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u53D6\u5F97\u3002
|
|
72643
|
+
- \`client.createFile(options)\` \u2014 \u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30D5\u30A9\u30EB\u30C0\u3092\u4F5C\u6210\uFF08\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u307F\uFF09\u3002
|
|
72644
|
+
- \`client.updateFile(fileId, metadata, addParents?, removeParents?)\` \u2014 \u540D\u524D\u5909\u66F4\u30FB\u79FB\u52D5\u30FB\u66F4\u65B0\u3002
|
|
72645
|
+
- \`client.copyFile(fileId, name, parents?)\` \u2014 \u30D5\u30A1\u30A4\u30EB\u3092\u30B3\u30D4\u30FC\u3002
|
|
72646
|
+
- \`client.downloadFile(fileId)\` \u2014 \u30D0\u30A4\u30CA\u30EA\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\uFF08\`Response\` \u3092\u8FD4\u3059\uFF09\u3002
|
|
72647
|
+
- \`client.exportFile(fileId, mimeType)\` \u2014 Google Workspace \u30D5\u30A1\u30A4\u30EB\u3092\u5225\u5F62\u5F0F\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3002
|
|
72648
|
+
- \`client.shareFile(fileId, type, role, emailAddress)\` \u2014 \u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u3092\u8FFD\u52A0\u3002
|
|
72649
|
+
- \`client.listPermissions(fileId)\` \u2014 \u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u4E00\u89A7\u3092\u53D6\u5F97\u3002
|
|
72650
|
+
|
|
72651
|
+
\u30CF\u30F3\u30C9\u30E9\u306E\u30C6\u30B9\u30C8\u304C \`Connection proxy is not configured\` \u3067\u5931\u6557\u3059\u308B\u5834\u5408\u306F\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u901A\u5E38\u306F\u30B5\u30F3\u30C9\u30DC\u30C3\u30AF\u30B9\u306E\u521D\u671F\u5316\u4E2D\u306B\u8D77\u304D\u307E\u3059\u3002SDK \u3092\u8AE6\u3081\u3066 OAuth \u30D7\u30ED\u30AD\u30B7\u306E URL \u3092\u81EA\u5206\u3067\u7D44\u307F\u7ACB\u3066\u308B\u3053\u3068\u306F **\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044**\u3002
|
|
72520
72652
|
|
|
72521
72653
|
#### Example
|
|
72522
72654
|
|
|
@@ -72594,10 +72726,10 @@ await drive.updateFile("fileId123", {}, "newFolderId", "oldFolderId");
|
|
|
72594
72726
|
// ../connectors/src/connectors/google-sheets/setup.ts
|
|
72595
72727
|
var googleSheetsOnboarding = new ConnectorOnboarding({
|
|
72596
72728
|
dataOverviewInstructions: {
|
|
72597
|
-
en: `1. Create a new spreadsheet with google-
|
|
72598
|
-
2. Call google-
|
|
72599
|
-
ja: `1. google-
|
|
72600
|
-
2. google-
|
|
72729
|
+
en: `1. Create a new spreadsheet with google-sheets-oauth_request (POST with body { properties: { title: "..." } }) or use an existing spreadsheet ID.
|
|
72730
|
+
2. Call google-sheets-oauth_request with GET /{spreadsheetId} to fetch spreadsheet metadata (sheet names and properties).`,
|
|
72731
|
+
ja: `1. google-sheets-oauth_request \u3092 POST\uFF08Body: { properties: { title: "..." } }\uFF09\u3067\u547C\u3073\u51FA\u3057\u3066\u65B0\u3057\u3044\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u3092\u4F5C\u6210\u3059\u308B\u304B\u3001\u65E2\u5B58\u306E\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8ID\u3092\u5229\u7528\u3057\u307E\u3059\u3002
|
|
72732
|
+
2. google-sheets-oauth_request \u3067 GET /{spreadsheetId} \u3092\u547C\u3073\u51FA\u3057\u3001\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\uFF08\u30B7\u30FC\u30C8\u540D\u3068\u30D7\u30ED\u30D1\u30C6\u30A3\uFF09\u3092\u53D6\u5F97\u3057\u307E\u3059\u3002`
|
|
72601
72733
|
}
|
|
72602
72734
|
});
|
|
72603
72735
|
|
|
@@ -72740,9 +72872,11 @@ var googleSheetsConnector = new ConnectorPlugin({
|
|
|
72740
72872
|
]
|
|
72741
72873
|
},
|
|
72742
72874
|
systemPrompt: {
|
|
72743
|
-
en: `### Tools
|
|
72875
|
+
en: `### Tools (setup-time only)
|
|
72876
|
+
|
|
72877
|
+
- \`google-sheets-oauth_request\`: Call the Google Sheets API during setup / data overview. Supports read and write operations. Use it to get/update spreadsheet metadata, cell values, create new spreadsheets, and more. Authentication is configured automatically via OAuth.
|
|
72744
72878
|
|
|
72745
|
-
|
|
72879
|
+
> **Important**: The \`google-sheets-oauth_request\` tool is only available at setup time. Inside server-logic handlers, use the SDK (\`connection(id).getValues\`, etc.) \u2014 the SDK's fetch is already wired through the OAuth proxy. **Do NOT** hand-roll HTTP calls to \`_sqcore/connections/*/request\` from a handler.
|
|
72746
72880
|
|
|
72747
72881
|
### Google Sheets API Reference
|
|
72748
72882
|
|
|
@@ -72774,7 +72908,18 @@ var googleSheetsConnector = new ConnectorPlugin({
|
|
|
72774
72908
|
|
|
72775
72909
|
### Business Logic
|
|
72776
72910
|
|
|
72777
|
-
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables.
|
|
72911
|
+
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables and do NOT read \`INTERNAL_SQUADBASE_*\` env vars \u2014 the SDK takes care of OAuth.
|
|
72912
|
+
|
|
72913
|
+
SDK surface (client created via \`connection(connectionId)\`):
|
|
72914
|
+
- \`client.request(path, init?)\` \u2014 low-level authenticated fetch (\`path\` is appended to \`https://sheets.googleapis.com/v4/spreadsheets\`).
|
|
72915
|
+
- \`client.getSpreadsheet(spreadsheetId)\` \u2014 fetch spreadsheet metadata.
|
|
72916
|
+
- \`client.getValues(spreadsheetId, range)\` \u2014 read a range (A1 notation).
|
|
72917
|
+
- \`client.batchGetValues(spreadsheetId, ranges)\` \u2014 read multiple ranges.
|
|
72918
|
+
- \`client.updateValues(spreadsheetId, range, values)\` \u2014 write values to a range.
|
|
72919
|
+
- \`client.appendValues(spreadsheetId, range, values)\` \u2014 append rows after the last row.
|
|
72920
|
+
- \`client.createSpreadsheet(title, sheetNames?)\` \u2014 create a new spreadsheet.
|
|
72921
|
+
|
|
72922
|
+
If a handler test fails with \`Connection proxy is not configured\`, retry \u2014 the sandbox is still initializing. Do NOT abandon the SDK and construct OAuth proxy URLs manually.
|
|
72778
72923
|
|
|
72779
72924
|
#### Example
|
|
72780
72925
|
|
|
@@ -72801,9 +72946,11 @@ await sheets.updateValues(spreadsheetId, "Sheet1!A1:B2", [["Name", "Score"], ["A
|
|
|
72801
72946
|
// Append rows
|
|
72802
72947
|
await sheets.appendValues(spreadsheetId, "Sheet1!A1", [["Bob", "95"], ["Charlie", "88"]]);
|
|
72803
72948
|
\`\`\``,
|
|
72804
|
-
ja: `### \u30C4\u30FC\u30EB
|
|
72949
|
+
ja: `### \u30C4\u30FC\u30EB\uFF08\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306E\u307F\uFF09
|
|
72805
72950
|
|
|
72806
|
-
- \`google-
|
|
72951
|
+
- \`google-sheets-oauth_request\`: \u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3084\u30C7\u30FC\u30BF\u6982\u8981\u628A\u63E1\u6642\u306B Google Sheets API \u3092\u547C\u3073\u51FA\u3059\u30C4\u30FC\u30EB\u3067\u3059\u3002\u8AAD\u307F\u53D6\u308A\u3068\u66F8\u304D\u8FBC\u307F\u306E\u4E21\u65B9\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u30FB\u30BB\u30EB\u5024\u306E\u53D6\u5F97/\u66F4\u65B0\u3001\u65B0\u3057\u3044\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306E\u4F5C\u6210\u306A\u3069\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002OAuth \u7D4C\u7531\u3067\u8A8D\u8A3C\u306F\u81EA\u52D5\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002
|
|
72952
|
+
|
|
72953
|
+
> **\u91CD\u8981**: \`google-sheets-oauth_request\` \u306F\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306E\u307F\u5229\u7528\u53EF\u80FD\u3067\u3059\u3002\u30B5\u30FC\u30D0\u30FC\u30ED\u30B8\u30C3\u30AF\u306E\u30CF\u30F3\u30C9\u30E9\u5185\u3067\u306F\u5FC5\u305A SDK\uFF08\`connection(id).getValues\` \u306A\u3069\uFF09\u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002SDK \u306E fetch \u306F OAuth \u30D7\u30ED\u30AD\u30B7\u7D4C\u7531\u3067\u65E2\u306B\u914D\u7DDA\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30CF\u30F3\u30C9\u30E9\u304B\u3089 \`_sqcore/connections/*/request\` \u3092\u624B\u66F8\u304D\u3067\u547C\u3073\u51FA\u3055\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
|
|
72807
72954
|
|
|
72808
72955
|
### Google Sheets API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
72809
72956
|
|
|
@@ -72835,7 +72982,18 @@ await sheets.appendValues(spreadsheetId, "Sheet1!A1", [["Bob", "95"], ["Charlie"
|
|
|
72835
72982
|
|
|
72836
72983
|
### Business Logic
|
|
72837
72984
|
|
|
72838
|
-
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\
|
|
72985
|
+
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\u30BF SDK \u3092\u4F7F\u7528\u3057\u3066\u30CF\u30F3\u30C9\u30E9\u30B3\u30FC\u30C9\u3092\u8A18\u8FF0\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u74B0\u5883\u5909\u6570\u304B\u3089\u76F4\u63A5\u8A8D\u8A3C\u60C5\u5831\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002\`INTERNAL_SQUADBASE_*\` \u306E\u74B0\u5883\u5909\u6570\u3092\u4F7F\u3063\u3066\u624B\u52D5\u3067 OAuth \u30D7\u30ED\u30AD\u30B7\u3092\u53E9\u304F\u3053\u3068\u3082\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044 \u2014 SDK \u304C OAuth \u3092\u51E6\u7406\u3057\u307E\u3059\u3002
|
|
72986
|
+
|
|
72987
|
+
SDK\uFF08\`connection(connectionId)\` \u3067\u4F5C\u6210\u3057\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\uFF09:
|
|
72988
|
+
- \`client.request(path, init?)\` \u2014 \u4F4E\u30EC\u30D9\u30EB\u306E\u8A8D\u8A3C\u4ED8\u304D fetch\uFF08\`path\` \u306F \`https://sheets.googleapis.com/v4/spreadsheets\` \u306B\u8FFD\u52A0\u3055\u308C\u307E\u3059\uFF09\u3002
|
|
72989
|
+
- \`client.getSpreadsheet(spreadsheetId)\` \u2014 \u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u53D6\u5F97\u3002
|
|
72990
|
+
- \`client.getValues(spreadsheetId, range)\` \u2014 \u7BC4\u56F2\u306E\u5024\u3092\u53D6\u5F97\uFF08A1 \u8868\u8A18\uFF09\u3002
|
|
72991
|
+
- \`client.batchGetValues(spreadsheetId, ranges)\` \u2014 \u8907\u6570\u7BC4\u56F2\u306E\u5024\u3092\u53D6\u5F97\u3002
|
|
72992
|
+
- \`client.updateValues(spreadsheetId, range, values)\` \u2014 \u7BC4\u56F2\u306B\u5024\u3092\u66F8\u304D\u8FBC\u307F\u3002
|
|
72993
|
+
- \`client.appendValues(spreadsheetId, range, values)\` \u2014 \u6700\u7D42\u884C\u306E\u5F8C\u306B\u884C\u3092\u8FFD\u52A0\u3002
|
|
72994
|
+
- \`client.createSpreadsheet(title, sheetNames?)\` \u2014 \u65B0\u3057\u3044\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u3092\u4F5C\u6210\u3002
|
|
72995
|
+
|
|
72996
|
+
\u30CF\u30F3\u30C9\u30E9\u306E\u30C6\u30B9\u30C8\u304C \`Connection proxy is not configured\` \u3067\u5931\u6557\u3059\u308B\u5834\u5408\u306F\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u901A\u5E38\u306F\u30B5\u30F3\u30C9\u30DC\u30C3\u30AF\u30B9\u306E\u521D\u671F\u5316\u4E2D\u306B\u8D77\u304D\u307E\u3059\u3002SDK \u3092\u8AE6\u3081\u3066 OAuth \u30D7\u30ED\u30AD\u30B7\u306E URL \u3092\u81EA\u5206\u3067\u7D44\u307F\u7ACB\u3066\u308B\u3053\u3068\u306F **\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044**\u3002
|
|
72839
72997
|
|
|
72840
72998
|
#### Example
|
|
72841
72999
|
|
|
@@ -72869,10 +73027,10 @@ await sheets.appendValues(spreadsheetId, "Sheet1!A1", [["Bob", "95"], ["Charlie"
|
|
|
72869
73027
|
// ../connectors/src/connectors/google-slides/setup.ts
|
|
72870
73028
|
var googleSlidesOnboarding = new ConnectorOnboarding({
|
|
72871
73029
|
dataOverviewInstructions: {
|
|
72872
|
-
en: `1. Create a new presentation with google-
|
|
72873
|
-
2. Call google-
|
|
72874
|
-
ja: `1. google-
|
|
72875
|
-
2. google-
|
|
73030
|
+
en: `1. Create a new presentation with google-slides-oauth_request (POST with body { title: "..." }) or use an existing presentation ID.
|
|
73031
|
+
2. Call google-slides-oauth_request with GET /{presentationId} to fetch presentation metadata (title, slide count, layout info).`,
|
|
73032
|
+
ja: `1. google-slides-oauth_request \u3092 POST\uFF08Body: { title: "..." }\uFF09\u3067\u547C\u3073\u51FA\u3057\u3066\u65B0\u3057\u3044\u30D7\u30EC\u30BC\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3\u3092\u4F5C\u6210\u3059\u308B\u304B\u3001\u65E2\u5B58\u306E\u30D7\u30EC\u30BC\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3ID\u3092\u5229\u7528\u3057\u307E\u3059\u3002
|
|
73033
|
+
2. google-slides-oauth_request \u3067 GET /{presentationId} \u3092\u547C\u3073\u51FA\u3057\u3001\u30D7\u30EC\u30BC\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\uFF08\u30BF\u30A4\u30C8\u30EB\u3001\u30B9\u30E9\u30A4\u30C9\u6570\u3001\u30EC\u30A4\u30A2\u30A6\u30C8\u60C5\u5831\uFF09\u3092\u53D6\u5F97\u3057\u307E\u3059\u3002`
|
|
72876
73034
|
}
|
|
72877
73035
|
});
|
|
72878
73036
|
|
|
@@ -73015,9 +73173,11 @@ var googleSlidesConnector = new ConnectorPlugin({
|
|
|
73015
73173
|
]
|
|
73016
73174
|
},
|
|
73017
73175
|
systemPrompt: {
|
|
73018
|
-
en: `### Tools
|
|
73176
|
+
en: `### Tools (setup-time only)
|
|
73019
73177
|
|
|
73020
|
-
- \`google-
|
|
73178
|
+
- \`google-slides-oauth_request\`: Call the Google Slides API directly during setup / data overview. Supports read and write operations. Use it to get presentation metadata, slide content, create new presentations, and modify slides. Authentication is configured automatically via OAuth.
|
|
73179
|
+
|
|
73180
|
+
> **Important**: The \`google-slides-oauth_request\` tool is only available at setup time. Inside server-logic handlers, use the SDK (\`connection(id).createPresentation\`, etc.) \u2014 the SDK's fetch is already wired through the OAuth proxy. **Do NOT** hand-roll HTTP calls to \`_sqcore/connections/*/request\` from a handler.
|
|
73021
73181
|
|
|
73022
73182
|
### Google Slides API Reference
|
|
73023
73183
|
|
|
@@ -73054,7 +73214,14 @@ var googleSlidesConnector = new ConnectorPlugin({
|
|
|
73054
73214
|
|
|
73055
73215
|
### Business Logic
|
|
73056
73216
|
|
|
73057
|
-
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables.
|
|
73217
|
+
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables and do NOT import from \`INTERNAL_SQUADBASE_*\` env vars \u2014 the SDK takes care of OAuth.
|
|
73218
|
+
|
|
73219
|
+
SDK surface (client created via \`connection(connectionId)\`):
|
|
73220
|
+
- \`client.request(path, init?)\` \u2014 low-level authenticated fetch (returns a standard \`Response\`). \`path\` is appended to \`https://slides.googleapis.com/v1/presentations\`.
|
|
73221
|
+
- \`client.getPresentation(presentationId)\` \u2014 fetch presentation metadata (title, slides, layouts, masters).
|
|
73222
|
+
- \`client.getPage(presentationId, pageObjectId)\` \u2014 fetch one slide page with its elements.
|
|
73223
|
+
- \`client.createPresentation(title)\` \u2014 create a new presentation.
|
|
73224
|
+
- \`client.batchUpdate(presentationId, requests)\` \u2014 apply one or more requests (createSlide / insertText / createShape / etc.).
|
|
73058
73225
|
|
|
73059
73226
|
#### Example
|
|
73060
73227
|
|
|
@@ -73080,10 +73247,16 @@ await slides.batchUpdate(presentationId, [
|
|
|
73080
73247
|
{ createSlide: { insertionIndex: 1, slideLayoutReference: { predefinedLayout: "TITLE_AND_BODY" } } },
|
|
73081
73248
|
{ insertText: { objectId: "someShapeId", text: "Hello, World!" } },
|
|
73082
73249
|
]);
|
|
73083
|
-
|
|
73084
|
-
|
|
73250
|
+
\`\`\`
|
|
73251
|
+
|
|
73252
|
+
#### Troubleshooting
|
|
73085
73253
|
|
|
73086
|
-
|
|
73254
|
+
If a handler test fails with \`Connection proxy is not configured\`, retry \u2014 this usually means the sandbox is still initializing. Do NOT abandon the SDK and construct OAuth proxy URLs manually.`,
|
|
73255
|
+
ja: `### \u30C4\u30FC\u30EB\uFF08\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306E\u307F\uFF09
|
|
73256
|
+
|
|
73257
|
+
- \`google-slides-oauth_request\`: \u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3084\u30C7\u30FC\u30BF\u6982\u8981\u628A\u63E1\u6642\u306B Google Slides API \u3092\u76F4\u63A5\u53E9\u304F\u30C4\u30FC\u30EB\u3067\u3059\u3002\u8AAD\u307F\u53D6\u308A\u3068\u66F8\u304D\u8FBC\u307F\u306E\u4E21\u65B9\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002\u30D7\u30EC\u30BC\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u30FB\u30B9\u30E9\u30A4\u30C9\u5185\u5BB9\u306E\u53D6\u5F97\u3001\u65B0\u3057\u3044\u30D7\u30EC\u30BC\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3\u306E\u4F5C\u6210\u3001\u30B9\u30E9\u30A4\u30C9\u306E\u5909\u66F4\u306A\u3069\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002OAuth \u7D4C\u7531\u3067\u8A8D\u8A3C\u306F\u81EA\u52D5\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002
|
|
73258
|
+
|
|
73259
|
+
> **\u91CD\u8981**: \`google-slides-oauth_request\` \u306F\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306E\u307F\u5229\u7528\u53EF\u80FD\u3067\u3059\u3002\u30B5\u30FC\u30D0\u30FC\u30ED\u30B8\u30C3\u30AF\u306E\u30CF\u30F3\u30C9\u30E9\u5185\u3067\u306F\u5FC5\u305A SDK\uFF08\`connection(id).createPresentation\` \u306A\u3069\uFF09\u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002SDK \u306E fetch \u306F OAuth \u30D7\u30ED\u30AD\u30B7\u7D4C\u7531\u3067\u65E2\u306B\u914D\u7DDA\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30CF\u30F3\u30C9\u30E9\u304B\u3089 \`_sqcore/connections/*/request\` \u3092\u624B\u66F8\u304D\u3067\u547C\u3073\u51FA\u3055\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
|
|
73087
73260
|
|
|
73088
73261
|
### Google Slides API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
73089
73262
|
|
|
@@ -73120,7 +73293,14 @@ await slides.batchUpdate(presentationId, [
|
|
|
73120
73293
|
|
|
73121
73294
|
### Business Logic
|
|
73122
73295
|
|
|
73123
|
-
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\
|
|
73296
|
+
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\u30BF SDK \u3092\u4F7F\u7528\u3057\u3066\u30CF\u30F3\u30C9\u30E9\u30B3\u30FC\u30C9\u3092\u8A18\u8FF0\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u74B0\u5883\u5909\u6570\u304B\u3089\u76F4\u63A5\u8A8D\u8A3C\u60C5\u5831\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002\`INTERNAL_SQUADBASE_*\` \u306E\u74B0\u5883\u5909\u6570\u3092\u4F7F\u3063\u3066\u624B\u52D5\u3067 OAuth \u30D7\u30ED\u30AD\u30B7\u3092\u53E9\u304F\u3053\u3068\u3082\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044 \u2014 SDK \u304C OAuth \u3092\u51E6\u7406\u3057\u307E\u3059\u3002
|
|
73297
|
+
|
|
73298
|
+
SDK\uFF08\`connection(connectionId)\` \u3067\u4F5C\u6210\u3057\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\uFF09:
|
|
73299
|
+
- \`client.request(path, init?)\` \u2014 \u4F4E\u30EC\u30D9\u30EB\u306E\u8A8D\u8A3C\u4ED8\u304D fetch\uFF08\u6A19\u6E96 \`Response\` \u3092\u8FD4\u3059\uFF09\u3002\`path\` \u306F \`https://slides.googleapis.com/v1/presentations\` \u306B\u8FFD\u52A0\u3055\u308C\u307E\u3059\u3002
|
|
73300
|
+
- \`client.getPresentation(presentationId)\` \u2014 \u30D7\u30EC\u30BC\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u53D6\u5F97\u3002
|
|
73301
|
+
- \`client.getPage(presentationId, pageObjectId)\` \u2014 \u7279\u5B9A\u306E\u30B9\u30E9\u30A4\u30C9\u30DA\u30FC\u30B8\u3068\u305D\u306E\u8981\u7D20\u3092\u53D6\u5F97\u3002
|
|
73302
|
+
- \`client.createPresentation(title)\` \u2014 \u65B0\u3057\u3044\u30D7\u30EC\u30BC\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3\u3092\u4F5C\u6210\u3002
|
|
73303
|
+
- \`client.batchUpdate(presentationId, requests)\` \u2014 createSlide / insertText / createShape \u306A\u3069\u306E\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u307E\u3068\u3081\u3066\u9069\u7528\u3002
|
|
73124
73304
|
|
|
73125
73305
|
#### Example
|
|
73126
73306
|
|
|
@@ -73146,7 +73326,11 @@ await slides.batchUpdate(presentationId, [
|
|
|
73146
73326
|
{ createSlide: { insertionIndex: 1, slideLayoutReference: { predefinedLayout: "TITLE_AND_BODY" } } },
|
|
73147
73327
|
{ insertText: { objectId: "someShapeId", text: "Hello, World!" } },
|
|
73148
73328
|
]);
|
|
73149
|
-
|
|
73329
|
+
\`\`\`
|
|
73330
|
+
|
|
73331
|
+
#### \u30C8\u30E9\u30D6\u30EB\u30B7\u30E5\u30FC\u30C6\u30A3\u30F3\u30B0
|
|
73332
|
+
|
|
73333
|
+
\u30CF\u30F3\u30C9\u30E9\u306E\u30C6\u30B9\u30C8\u304C \`Connection proxy is not configured\` \u3067\u5931\u6557\u3059\u308B\u5834\u5408\u306F\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u901A\u5E38\u306F\u30B5\u30F3\u30C9\u30DC\u30C3\u30AF\u30B9\u306E\u521D\u671F\u5316\u4E2D\u306B\u8D77\u304D\u307E\u3059\u3002SDK \u3092\u8AE6\u3081\u3066 OAuth \u30D7\u30ED\u30AD\u30B7\u306E URL \u3092\u81EA\u5206\u3067\u7D44\u307F\u7ACB\u3066\u308B\u3053\u3068\u306F **\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044**\u3002`
|
|
73150
73334
|
},
|
|
73151
73335
|
tools: tools19
|
|
73152
73336
|
});
|
|
@@ -74642,14 +74826,14 @@ var kintoneApiTokenOnboarding = new ConnectorOnboarding({
|
|
|
74642
74826
|
dataOverviewInstructions: {
|
|
74643
74827
|
en: `Each connection is scoped to a single kintone app (configured via the "app-id" parameter). The request tool auto-injects the configured app id, so you do NOT need to specify "app=" in paths or "app" in bodies. apps.json is NOT available with API Token auth.
|
|
74644
74828
|
|
|
74645
|
-
1. Call kintone-api-
|
|
74646
|
-
2. Call kintone-api-
|
|
74647
|
-
3. Call kintone-api-
|
|
74829
|
+
1. Call kintone-api-key_request with GET app.json to fetch the scoped app's metadata (name, description, creator)
|
|
74830
|
+
2. Call kintone-api-key_request with GET app/form/fields.json to get field definitions
|
|
74831
|
+
3. Call kintone-api-key_request with GET records.json with query=limit 5 to sample records`,
|
|
74648
74832
|
ja: `\u5404\u63A5\u7D9A\u306F1\u3064\u306Ekintone\u30A2\u30D7\u30EA\u306B\u30B9\u30B3\u30FC\u30D7\u3055\u308C\u3066\u3044\u307E\u3059\uFF08"app-id" \u30D1\u30E9\u30E1\u30FC\u30BF\u3067\u8A2D\u5B9A\uFF09\u3002request \u30C4\u30FC\u30EB\u306F\u8A2D\u5B9A\u3055\u308C\u305F\u30A2\u30D7\u30EAID\u3092\u81EA\u52D5\u6CE8\u5165\u3059\u308B\u305F\u3081\u3001\u30D1\u30B9\u306B "app=" \u3084 body \u306B "app" \u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u306F\u3042\u308A\u307E\u305B\u3093\u3002API Token \u8A8D\u8A3C\u3067\u306F apps.json \u306F\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002
|
|
74649
74833
|
|
|
74650
|
-
1. kintone-api-
|
|
74651
|
-
2. kintone-api-
|
|
74652
|
-
3. kintone-api-
|
|
74834
|
+
1. kintone-api-key_request \u3067 GET app.json \u3092\u547C\u3073\u51FA\u3057\u3001\u30B9\u30B3\u30FC\u30D7\u5BFE\u8C61\u30A2\u30D7\u30EA\u306E\u30E1\u30BF\u60C5\u5831\uFF08\u30A2\u30D7\u30EA\u540D\u3001\u8AAC\u660E\u3001\u4F5C\u6210\u8005\uFF09\u3092\u53D6\u5F97
|
|
74835
|
+
2. kintone-api-key_request \u3067 GET app/form/fields.json \u3092\u547C\u3073\u51FA\u3057\u3001\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u3092\u53D6\u5F97
|
|
74836
|
+
3. kintone-api-key_request \u3067 GET records.json \u3092 query=limit 5 \u3067\u547C\u3073\u51FA\u3057\u3001\u30EC\u30B3\u30FC\u30C9\u3092\u30B5\u30F3\u30D7\u30EA\u30F3\u30B0`
|
|
74653
74837
|
}
|
|
74654
74838
|
});
|
|
74655
74839
|
|
|
@@ -74801,7 +74985,7 @@ var kintoneApiTokenConnector = new ConnectorPlugin({
|
|
|
74801
74985
|
systemPrompt: {
|
|
74802
74986
|
en: `### Tools
|
|
74803
74987
|
|
|
74804
|
-
- \`kintone-api-
|
|
74988
|
+
- \`kintone-api-key_request\`: The only way to call the kintone REST API. Use it to fetch app metadata/field definitions and read/write records. Authentication (API Token), base URL, and the connection's app id are configured automatically. Each connection is scoped to exactly one app (kintone API tokens are per-app).
|
|
74805
74989
|
|
|
74806
74990
|
### App scoping (important)
|
|
74807
74991
|
|
|
@@ -74874,7 +75058,7 @@ export default async function handler(c: Context) {
|
|
|
74874
75058
|
- String: \`like "partial match"\``,
|
|
74875
75059
|
ja: `### \u30C4\u30FC\u30EB
|
|
74876
75060
|
|
|
74877
|
-
- \`kintone-api-
|
|
75061
|
+
- \`kintone-api-key_request\`: kintone REST API\u3092\u547C\u3073\u51FA\u3059\u552F\u4E00\u306E\u624B\u6BB5\u3067\u3059\u3002\u30A2\u30D7\u30EA\u306E\u30E1\u30BF\u60C5\u5831\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\u3001\u30EC\u30B3\u30FC\u30C9\u306E\u8AAD\u307F\u66F8\u304D\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002\u8A8D\u8A3C\uFF08API\u30C8\u30FC\u30AF\u30F3\uFF09\u3001\u30D9\u30FC\u30B9URL\u3001\u304A\u3088\u3073\u63A5\u7D9A\u306E\u30A2\u30D7\u30EAID\u306F\u81EA\u52D5\u7684\u306B\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002\u5404\u63A5\u7D9A\u306F\u3061\u3087\u3046\u30691\u3064\u306E\u30A2\u30D7\u30EA\u306B\u30B9\u30B3\u30FC\u30D7\u3055\u308C\u3066\u3044\u307E\u3059\uFF08kintone API\u30C8\u30FC\u30AF\u30F3\u306F\u30A2\u30D7\u30EA\u5358\u4F4D\u306E\u305F\u3081\uFF09\u3002
|
|
74878
75062
|
|
|
74879
75063
|
### \u30A2\u30D7\u30EA\u30B9\u30B3\u30FC\u30D7\uFF08\u91CD\u8981\uFF09
|
|
74880
75064
|
|
|
@@ -81815,7 +81999,7 @@ All paths are relative to https://gmail.googleapis.com/gmail/v1/users. Use '/me'
|
|
|
81815
81999
|
});
|
|
81816
82000
|
|
|
81817
82001
|
// ../connectors/src/connectors/gmail/setup.ts
|
|
81818
|
-
var requestToolName7 = `
|
|
82002
|
+
var requestToolName7 = `gmail-service-account_${requestTool35.name}`;
|
|
81819
82003
|
var gmailOnboarding = new ConnectorOnboarding({
|
|
81820
82004
|
connectionSetupInstructions: {
|
|
81821
82005
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Gmail\uFF08\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\uFF09\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002\u63A5\u7D9A\u4F5C\u6210\u6642\u306B\u306F\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8JSON\u306E\u307F\u304C\u8A2D\u5B9A\u6E08\u307F\u3067\u3001\u59D4\u4EFB\u5BFE\u8C61\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u306F\u3053\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u4E2D\u306B\u53D6\u5F97\u3057\u307E\u3059\u3002
|
|
@@ -81874,12 +82058,12 @@ var gmailOnboarding = new ConnectorOnboarding({
|
|
|
81874
82058
|
- Write only 1 sentence between tool calls, then immediately call the next tool. Skip unnecessary explanations and proceed efficiently`
|
|
81875
82059
|
},
|
|
81876
82060
|
dataOverviewInstructions: {
|
|
81877
|
-
en: `1. Call
|
|
81878
|
-
2. Call
|
|
81879
|
-
3. Call
|
|
81880
|
-
ja: `1.
|
|
81881
|
-
2.
|
|
81882
|
-
3. \u5404\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u3064\u3044\u3066
|
|
82061
|
+
en: `1. Call gmail-service-account_request with GET /me/labels to list all labels
|
|
82062
|
+
2. Call gmail-service-account_request with GET /me/messages?maxResults=5 to get recent message IDs
|
|
82063
|
+
3. Call gmail-service-account_request with GET /me/messages/{id}?format=metadata for each message to see subjects and senders`,
|
|
82064
|
+
ja: `1. gmail-service-account_request \u3067 GET /me/labels \u3092\u547C\u3073\u51FA\u3057\u3001\u5168\u30E9\u30D9\u30EB\u4E00\u89A7\u3092\u53D6\u5F97
|
|
82065
|
+
2. gmail-service-account_request \u3067 GET /me/messages?maxResults=5 \u3092\u547C\u3073\u51FA\u3057\u3001\u6700\u65B0\u30E1\u30C3\u30BB\u30FC\u30B8ID\u3092\u53D6\u5F97
|
|
82066
|
+
3. \u5404\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u3064\u3044\u3066 gmail-service-account_request \u3067 GET /me/messages/{id}?format=metadata \u3092\u547C\u3073\u51FA\u3057\u3001\u4EF6\u540D\u3068\u9001\u4FE1\u8005\u3092\u78BA\u8A8D`
|
|
81883
82067
|
}
|
|
81884
82068
|
});
|
|
81885
82069
|
|
|
@@ -81897,7 +82081,7 @@ var gmailConnector = new ConnectorPlugin({
|
|
|
81897
82081
|
systemPrompt: {
|
|
81898
82082
|
en: `### Tools
|
|
81899
82083
|
|
|
81900
|
-
- \`
|
|
82084
|
+
- \`gmail-service-account_request\`: The only way to call the Gmail API (read-only). Use it to list messages, get message details, list labels, list threads, and get user profile. Authentication is handled automatically using a service account with domain-wide delegation.
|
|
81901
82085
|
|
|
81902
82086
|
### Gmail API Reference
|
|
81903
82087
|
|
|
@@ -81970,7 +82154,7 @@ thread.messages.forEach(m => console.log(m.snippet));
|
|
|
81970
82154
|
\`\`\``,
|
|
81971
82155
|
ja: `### \u30C4\u30FC\u30EB
|
|
81972
82156
|
|
|
81973
|
-
- \`
|
|
82157
|
+
- \`gmail-service-account_request\`: Gmail API\u3092\u547C\u3073\u51FA\u3059\u552F\u4E00\u306E\u624B\u6BB5\u3067\u3059\uFF08\u8AAD\u307F\u53D6\u308A\u5C02\u7528\uFF09\u3002\u30E1\u30C3\u30BB\u30FC\u30B8\u4E00\u89A7\u306E\u53D6\u5F97\u3001\u30E1\u30C3\u30BB\u30FC\u30B8\u8A73\u7D30\u306E\u53D6\u5F97\u3001\u30E9\u30D9\u30EB\u4E00\u89A7\u3001\u30B9\u30EC\u30C3\u30C9\u4E00\u89A7\u3001\u30E6\u30FC\u30B6\u30FC\u30D7\u30ED\u30D5\u30A3\u30FC\u30EB\u306E\u53D6\u5F97\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u30C9\u30E1\u30A4\u30F3\u5168\u4F53\u306E\u59D4\u4EFB\u3092\u4F7F\u7528\u3057\u3066\u8A8D\u8A3C\u306F\u81EA\u52D5\u7684\u306B\u51E6\u7406\u3055\u308C\u307E\u3059\u3002
|
|
81974
82158
|
|
|
81975
82159
|
### Gmail API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
81976
82160
|
|
|
@@ -82329,7 +82513,17 @@ var gmailOauthConnector = new ConnectorPlugin({
|
|
|
82329
82513
|
|
|
82330
82514
|
### Business Logic
|
|
82331
82515
|
|
|
82332
|
-
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables.
|
|
82516
|
+
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables and do NOT read \`INTERNAL_SQUADBASE_*\` env vars \u2014 the SDK takes care of OAuth.
|
|
82517
|
+
|
|
82518
|
+
SDK surface (client created via \`connection(connectionId)\`):
|
|
82519
|
+
- \`client.request(path, init?)\` \u2014 low-level authenticated fetch (\`path\` is appended to \`https://gmail.googleapis.com/gmail/v1/users\`).
|
|
82520
|
+
- \`client.getProfile()\` \u2014 fetch the authenticated user's profile.
|
|
82521
|
+
- \`client.listLabels()\` \u2014 list all labels.
|
|
82522
|
+
- \`client.listMessages(options?)\` \u2014 list messages with optional \`q\`, \`maxResults\`, \`labelIds\`, \`pageToken\`.
|
|
82523
|
+
- \`client.getMessage(id, format?)\` \u2014 fetch a specific message (format: \`full\` / \`metadata\` / \`minimal\` / \`raw\`).
|
|
82524
|
+
- \`client.listThreads(options?)\` / \`client.getThread(id)\` \u2014 thread operations.
|
|
82525
|
+
|
|
82526
|
+
If a handler test fails with \`Connection proxy is not configured\`, retry \u2014 the sandbox is still initializing. Do NOT abandon the SDK and construct OAuth proxy URLs manually.
|
|
82333
82527
|
|
|
82334
82528
|
#### Example
|
|
82335
82529
|
|
|
@@ -82402,7 +82596,17 @@ thread.messages.forEach(m => console.log(m.snippet));
|
|
|
82402
82596
|
|
|
82403
82597
|
### Business Logic
|
|
82404
82598
|
|
|
82405
|
-
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\
|
|
82599
|
+
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\u30BF SDK \u3092\u4F7F\u7528\u3057\u3066\u30CF\u30F3\u30C9\u30E9\u30B3\u30FC\u30C9\u3092\u8A18\u8FF0\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u74B0\u5883\u5909\u6570\u304B\u3089\u76F4\u63A5\u8A8D\u8A3C\u60C5\u5831\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002\`INTERNAL_SQUADBASE_*\` \u306E\u74B0\u5883\u5909\u6570\u3092\u4F7F\u3063\u3066\u624B\u52D5\u3067 OAuth \u30D7\u30ED\u30AD\u30B7\u3092\u53E9\u304F\u3053\u3068\u3082\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044 \u2014 SDK \u304C OAuth \u3092\u51E6\u7406\u3057\u307E\u3059\u3002
|
|
82600
|
+
|
|
82601
|
+
SDK\uFF08\`connection(connectionId)\` \u3067\u4F5C\u6210\u3057\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\uFF09:
|
|
82602
|
+
- \`client.request(path, init?)\` \u2014 \u4F4E\u30EC\u30D9\u30EB\u306E\u8A8D\u8A3C\u4ED8\u304D fetch\uFF08\`path\` \u306F \`https://gmail.googleapis.com/gmail/v1/users\` \u306B\u8FFD\u52A0\u3055\u308C\u307E\u3059\uFF09\u3002
|
|
82603
|
+
- \`client.getProfile()\` \u2014 \u8A8D\u8A3C\u30E6\u30FC\u30B6\u30FC\u306E\u30D7\u30ED\u30D5\u30A3\u30FC\u30EB\u3092\u53D6\u5F97\u3002
|
|
82604
|
+
- \`client.listLabels()\` \u2014 \u5168\u30E9\u30D9\u30EB\u3092\u4E00\u89A7\u3002
|
|
82605
|
+
- \`client.listMessages(options?)\` \u2014 \u30E1\u30C3\u30BB\u30FC\u30B8\u4E00\u89A7\uFF08\`q\`, \`maxResults\`, \`labelIds\`, \`pageToken\` \u30AA\u30D7\u30B7\u30E7\u30F3\u5BFE\u5FDC\uFF09\u3002
|
|
82606
|
+
- \`client.getMessage(id, format?)\` \u2014 \u7279\u5B9A\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u53D6\u5F97\uFF08format: \`full\` / \`metadata\` / \`minimal\` / \`raw\`\uFF09\u3002
|
|
82607
|
+
- \`client.listThreads(options?)\` / \`client.getThread(id)\` \u2014 \u30B9\u30EC\u30C3\u30C9\u64CD\u4F5C\u3002
|
|
82608
|
+
|
|
82609
|
+
\u30CF\u30F3\u30C9\u30E9\u306E\u30C6\u30B9\u30C8\u304C \`Connection proxy is not configured\` \u3067\u5931\u6557\u3059\u308B\u5834\u5408\u306F\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u901A\u5E38\u306F\u30B5\u30F3\u30C9\u30DC\u30C3\u30AF\u30B9\u306E\u521D\u671F\u5316\u4E2D\u306B\u8D77\u304D\u307E\u3059\u3002SDK \u3092\u8AE6\u3081\u3066 OAuth \u30D7\u30ED\u30AD\u30B7\u306E URL \u3092\u81EA\u5206\u3067\u7D44\u307F\u7ACB\u3066\u308B\u3053\u3068\u306F **\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044**\u3002
|
|
82406
82610
|
|
|
82407
82611
|
#### Example
|
|
82408
82612
|
|