Python调用Google Search Console URL Inspector API报错解决
Google Search Console URL Inspector API 构建实例报错解决
报错核心原因
出现UnknownApiNameOrVersion: name: searchconsole version: v1报错和API名称、版本参数无关,searchconsole、v1两个参数本身是正确的,问题出在discoveryServiceUrl配置错误:
- 你传入的是接口实际调用路径,不是服务发现文档地址,客户端无法通过该地址拉取匹配的服务定义,因此识别不到对应API版本
- 手动指定非标准发现地址时未关闭静态发现校验,会强制走本地缓存的服务定义匹配,进一步触发报错
正确实现方案
最简便的方式是不手动指定discoveryServiceUrl,让客户端自动拉取对应版本的服务定义即可,代码示例:
from googleapiclient.discovery import build # 构建Search Console服务实例 service = build( 'searchconsole', 'v1', credentials=credentials ) # 调用URL Inspection接口示例 request_body = { "inspectionUrl": "待检测的页面完整URL", "siteUrl": "站点在Google Search Console中已验证的所有权地址" } resp = service.urlInspection().index().inspect(body=request_body).execute()
特殊网络环境下的适配方案
如果本地网络无法自动拉取服务发现文档,必须手动指定发现地址时,需要填入对应版本的服务发现文档路径,同时关闭静态发现校验:
service = build( 'searchconsole', 'v1', credentials=credentials, discoveryServiceUrl='https://searchconsole.googleapis.com/$discovery/rest?version=v1', static_discovery=False )
避坑提示
- 不要将接口调用路径
/v1/urlInspection/index:inspect作为discoveryServiceUrl传入,该地址是实际发起检测请求的端点,不是服务发现文档地址 - 调用前确认已在云服务控制台启用Search Console API,且使用的凭据对目标站点拥有足够的操作权限
- 凭据授权范围需要包含
https://www.googleapis.com/auth/webmasters,否则会触发权限报错
内容的提问来源于stack exchange,提问作者Hanna
相关产品推荐
相关产品推荐

