能否通过Julia创建Google Search Console的API访问?求调试帮助
问题修复:使用Julia调用Google Search Console API
你的代码存在几个关键问题,导致请求失败,下面逐一说明并给出修正方案:
HTTP头拼写错误
你写的Authoriazation是拼写错误,正确应为Authorization,这个错误会导致服务器无法识别你的认证信息。认证逻辑混乱
你已经通过GoogleSession获取了授权会话,但既没有用它来生成正确的Bearer Token,反而手动写了key,还直接把creds传给HTTP.post,这完全不符合Google Cloud API的认证流程。URL格式错误
直接将site_url(包含://)拼接到API URL中会导致路径解析错误,需要对site_url进行URL编码。缺少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
相关产品推荐
相关产品推荐

