ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Composio 中 Google Maps Toolkit 的认证、故障排查与配额管理实战指南

Composio 中 Google Maps Toolkit 的认证、故障排查与配额管理实战指南 Composio 中 Google Maps Toolkit 的认证、故障排查与配额管理实战指南【免费下载链接】composioComposio powers 1000 toolkits, tool search, context management, authentication, and a sandboxed workbench to help you build AI agents that turn intent into action.项目地址: https://gitcode.com/GitHub_Trending/co/composio导读本文聚焦 Composio 项目中google_mapstoolkit工具包在真实使用中最常遇到的五类问题Maps Embed API 的 API Key 认证要求、OAuth 敏感 scope 导致的授权被拦截、Places APIincludedTypes参数校验、已废弃的GEOCODING_API误用以及 GCP 计费与配额管理。读完本文你将能够为 Composio 的 Google Maps 工具正确配置认证方式、诊断并修复授权失败、规避 Places 请求参数错误并在需要时为自己的 Google Cloud 项目申请更高配额。本文基于仓库知识库文章 docs/kb/articles/toolkits-google-maps.md对应源文件为 docs/kb/source/toolkits/google_maps/public.md并补充了 FAQ、认证配置文档与 SDK 源码证据。背景google_mapstoolkit 与两种认证路径Composio 的 Google Maps 工具包聚合了多个 Google Maps 相关工具其 toolkit slug 为google_maps在 ts/packages/cli/src/generated/toolkit-slugs.ts 中可确认。在开始排查之前需要先分清该工具包内不同工具的认证方式OAuth 路径绝大多数 Google 系工具如日历、Gmail走 OAuth2 授权使用 Composio 托管的 OAuth app 或用户自建 OAuth appAPI Key 路径GOOGLE_MAPS_MAPS_EMBED_API属于例外它只接受 API Key 认证不走 OAuth2。这个区别是下文第一节与第二节所有问题判断的基础。如果你正在使用自定义 OAuth 凭据还需要在 Google Cloud Console 的APIs Services中确认对应 Google Maps API 已在那个项目中被启用否则会报Google Maps API has not been used in project错误详见 FAQ docs/content/toolkits/faq/google_maps.md。Maps Embed API 必须使用 API Key 认证核心结论GOOGLE_MAPS_MAPS_EMBED_API要求 API Key 认证。有两种合规用法使用 auth mode 为api-key的 auth config认证配置在调用工具时直接传入api_key参数。FAQ 中进一步明确了原因Google 的 Maps Embed API 在每次请求中都需要一个 API KeyOAuth2 并不是该工具的有效认证路径docs/content/toolkits/faq/google_maps.md。在调用时直接注入 API Key如果不希望为每个用户建立 connected account可以通过 Composio SDK 的custom_auth_paramsPython/customAuthParamsTypeScript在执行工具调用时直接注入凭据。仓库文档 docs/content/docs/auth-configuration/custom-auth-params.mdx 给出了完整范式下面是适配 Google Maps API Key 的写法from composio import Composio composio Composio(toolkit_versions{google_maps: latest}) result composio.tools.execute( slugGOOGLE_MAPS_MAPS_EMBED_API, user_iduser_123, arguments{}, dangerously_skip_version_checkTrue, # 使用 latest 时必须显式声明 custom_auth_params{ parameters: [ { name: key, value: YOUR_GOOGLE_MAPS_API_KEY, in: query, # Maps Embed API 通过查询参数携带 key } ], }, ) print(result)import { Composio } from composio/core; const composio new Composio({ apiKey: process.env.COMPOSIO_API_KEY, toolkitVersions: { google_maps: latest }, }); const result await composio.tools.execute( GOOGLE_MAPS_MAPS_EMBED_API, { userId: user_123, arguments: {}, dangerouslySkipVersionCheck: true, // 使用 latest 时必须显式声明 customAuthParams: { parameters: [ { in: query, name: key, value: process.env.GOOGLE_MAPS_API_KEY, }, ], }, } ); console.log(JSON.stringify(result, null, 2));⚠️ 注意customAuthParams方式会绕过 Composio 的自动令牌刷新机制过期或轮换的 API Key 需要自行维护docs/content/docs/auth-configuration/custom-auth-params.mdx。使用 api-key 模式的 auth config如果你已经有用户体系更规范的做法是在 Composio 平台中创建一个 auth mode 为api-key的 auth config将 API Key 作为该工具的认证凭据保存之后所有工具调用都自动携带该凭据。这也是知识库文章明确推荐的第一种方式Use an auth config whose auth mode isapi-key。OAuth 被 Google 拦截敏感 cloud-platform scope 问题问题现象Google Maps 的 OAuth 连接可能被 Google 直接拦截表现为授权页面报错或App is blocked。知识库文章指出的关键检查点在于OAuth app 是否请求了敏感 scopehttps://www.googleapis.com/auth/cloud-platform。触发条件与修复触发条件当 OAuth app 请求了cloud-platform这一敏感 scope且该 app尚未通过 Google 的 OAuth 验证时Google 会拦截**未列为测试用户test users且不属于注册组织organization**的用户。修复方式二选一完成 Google 的 OAuth app 验证流程将受影响的用户加入该 OAuth app 的测试用户/组织用户名单。FAQdocs/content/toolkits/faq/google_maps.md中补充了同类现象的另一视角App is blocked通常意味着 OAuth client 请求了超出默认范围的额外 scope而这些 scope 未经 Google 对该 client 验证。因此排查时应检查 auth config 中的 scope 列表移除超出默认范围的额外 scope或自建 OAuth app 并提交 scope 验证若报Error 400: invalid_scope则核对 scope 值是否在 Google OAuth scopes 文档允许的范围内、格式是否正确docs/content/docs/authentication/controlling-scopes.mdx 说明了 scope 如何作用于 OAuth toolkit。与自建 OAuth app 的关系使用自建 Google OAuth 凭据时还需要注意默认情况下 OAuth 同意屏幕显示的是 Composio 的 OAuth app若希望显示自己应用的名称和 Logo需要自建 OAuth app 并配置自定义 redirect URL参见 docs/content/docs/auth-configuration/white-labeling.mdx。校验 Places API 的includedTypes取值问题现象对于 Google Maps Places 请求如果报错信息围绕includedTypes且提示invalid argument几乎可以确定是传入了 Google Places API 不支持的 place type 值。处理步骤将请求中的includedTypes取值与 Google Places API 官方支持的 place type 列表逐项比对用受支持的枚举值替换不支持的取值替换后重试请求。从源码结构看includedTypes是 Places API 请求中用于过滤地点类别的数组参数其合法取值完全由 Google 服务端决定Composio 只负责透传参数因此无法在 SDK 层预先拦截非法值排查必须对照 Google 的 place types 列表进行。这是该知识条目的核心价值遇到includedTypes相关报错时优先怀疑参数值本身而不是 Composio 的调用链。不要使用已废弃的GEOCODING_API核心结论GEOCODING_API不属于当前google_mapstoolkit它属于另一个 toolkit 且已被废弃。不要把它作为google_maps工具包正常使用的一部分。正确做法需要地理编码能力时使用当前google_mapstoolkit 中现存的工具 slug可在composio tools或 SDK 工具列表中检索该 toolkit 的实时工具清单在代码审查、Agent 提示词或自动化流程中不要要求模型或工具强制依赖GEOCODING_API避免命中已废弃接口。这一条对构建 Agent 尤为重要LLM 在工具选择时可能依据旧文档生成GEOCODING_API调用知识库文章在此明确划出边界——废弃工具不属于当前 toolkit 的正常使用范围。GCP 计费与配额管理核心结论绝大多数经由 Composio 调用的 Google API 通常免费但Google Maps 是例外Maps API 可能要求 Google Cloud 项目开启计费billing。实操建议开启计费在使用 Maps 相关工具前确认承载 API Key / OAuth 凭据的 Google Cloud 项目已配置 billing监控配额如果使用量超过 Google 默认配额上限需要在自己的 Google 项目中申请提高限额Composio 无法代为提升你 GCP 项目侧的配额常见报错联动如果看到Google Maps API has not been used in project说明 API 未在凭据所属的 GCP 项目中启用需在 Cloud Console 的 APIs Services 中启用对应 API 后等待几分钟再重试docs/content/toolkits/faq/google_maps.md。常见问题速查表现象根因解决GOOGLE_MAPS_MAPS_EMBED_API调用失败未使用 API Key 认证改用api-key模式 auth config或通过api_key/customAuthParams传 KeyApp is blockedOAuth app 请求了未验证的敏感 scope如cloud-platform完成 Google 验证或把用户加入测试/组织用户Google Maps API has not been used in projectAPI 未在凭据所属 GCP 项目启用在 Cloud Console 启用对应 API等待数分钟重试Error 400: invalid_scopescope 值非法或格式错误对照 Google OAuth scopes 文档修正 scope 值工具调用返回 401access token 失效吊销、改密、刷新令牌上限等让用户重新认证docs/content/docs/auth-configuration/connected-accounts.mdxPlaces 报 invalid argumentincludedTypes含不受支持的值对照 Google place types 列表替换后重试用量超限GCP 项目配额不足或未开启计费自建项目开启 billing 并申请更高限额总结围绕 Google Maps toolkit本文覆盖了知识库文章的全部五类核心问题API Key 认证是 Maps Embed API 的唯一正确路径OAuth 被拦截时要优先检查cloud-platform敏感 scopePlaces 请求的includedTypes必须对照 Google 官方枚举GEOCODING_API已废弃不应再被依赖以及 Maps API 特有的计费与配额约束。在实践中建议按认证方式 → 授权拦截 → 参数校验 → 配额/计费的顺序逐层排查即可覆盖 Google Maps 工具在 Composio 中的绝大多数故障场景。相关权威依据均可在此仓库中直接查阅知识库原文、发布版指南、FAQ。【免费下载链接】composioComposio powers 1000 toolkits, tool search, context management, authentication, and a sandboxed workbench to help you build AI agents that turn intent into action.项目地址: https://gitcode.com/GitHub_Trending/co/composio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表