You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过Julia创建Google Search Console的API访问?求调试帮助

问题修复:使用Julia调用Google Search Console API

你的代码存在几个关键问题,导致请求失败,下面逐一说明并给出修正方案:

  1. HTTP头拼写错误
    你写的Authoriazation是拼写错误,正确应为Authorization,这个错误会导致服务器无法识别你的认证信息。

  2. 认证逻辑混乱
    你已经通过GoogleSession获取了授权会话,但既没有用它来生成正确的Bearer Token,反而手动写了key,还直接把creds传给HTTP.post,这完全不符合Google Cloud API的认证流程。

  3. URL格式错误
    直接将site_url(包含://)拼接到API URL中会导致路径解析错误,需要对site_url进行URL编码。

  4. 缺少POST请求体
    Search Analytics的query接口是POST请求,必须在请求体中指定查询参数(比如时间范围、维度等),你当前的请求没有任何请求体,服务器会返回参数缺失错误。

修正后的代码

using HTTP
using GoogleCloud
using JSON

# 加载凭证并创建授权会话
creds = JSONCredentials("~credentials.json")
session = GoogleSession(creds, ["webmasters", "webmasters.readonly"])

# 获取有效的Bearer Token
token = get_access_token(session)

# 对站点URL进行编码,避免格式错误
site_url = HTTP.escapeuri("https://www.example.com")

# 构建API请求URL
api_url = "https://www.googleapis.com/webmasters/v3/sites/$site_url/searchAnalytics/query"

# 定义POST请求体(必填参数,可根据需求调整)
request_body = JSON.json(Dict(
    "startDate" => "2024-01-01",
    "endDate" => "2024-01-31",
    "dimensions" => ["query"],
    "rowLimit" => 10
))

# 设置正确的请求头
headers = [
    "Authorization" => "Bearer $token",
    "Content-Type" => "application/json"
]

# 发送POST请求
response = HTTP.post(api_url, headers, request_body)

# 解析并打印响应结果
result = JSON.parse(String(response.body))
println(result)

额外注意事项

  • 确保服务账号已被添加到你的Google Search Console站点的权限列表中(需要授予"所有者"或"编辑者"权限),否则会返回权限不足错误。
  • 确认credentials.json文件路径正确,~代表当前用户的主目录,如果路径不对请改为绝对路径。

内容的提问来源于stack exchange,提问作者jrauns

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 06:10:29