【发布时间】:2021-11-16 10:19:49
【问题描述】:
我正在尝试通过其 API 从 Google Search Console 中恢复 Google Discover 数据并将其显示在 Google Sheet 中。
我正在学习一个教程,该教程引导我在 Google Cloud 平台中设置所需的身份验证,并向我展示了如何设置一个基本请求,以检索我在 Search Console 中可以访问的网站列表。
我不明白的是如何修改下面的代码,以便 API 检索 Google Discover 数据而不是我有权访问的网站列表。
Google Apps 脚本代码获取提到的网站并填充两列,一列包含网站链接,另一列包含我对该网站的访问级别。
function listAccountSites() {
var service = getService();
if (service.hasAccess()) {
var apiURL = "https://www.googleapis.com/webmasters/v3/sites";
var headers = {
"Authorization": "Bearer " + getService().getAccessToken()
};
var options = {
"headers": headers,
"method" : "GET",
"muteHttpExceptions": true
};
var response = UrlFetchApp.fetch(apiURL, options);
var json = JSON.parse(response.getContentText());
Logger.log(json)
var URLs = []
for (var i in json.siteEntry) {
URLs.push([json.siteEntry[i].siteUrl, json.siteEntry[i].permissionLevel]);
}
s_sites.getRange(2,1,URLs.length,2).setValues(URLs);
} else {
var authorizationUrl = service.getAuthorizationUrl();
Logger.log('Open the following URL and re-run the script: %s', authorizationUrl);
Browser.msgBox('Open the following URL and re-run the script: ' + authorizationUrl)
}
}
使用this Google 文档页面,我能够构建一个 API 请求来获取我需要的 Google Discover 数据,但正如我所说,我无法弄清楚如何做到这一点。提到的请求获取我需要的数据如下:
{
"startDate": "2021-11-01",
"endDate": "2021-11-05",
"dimensions": [
"PAGE"
],
"type": "DISCOVER"
}
【问题讨论】:
-
您能具体说明问题所在吗?阅读您的问题后,尚不清楚问题是什么或您需要什么才能开始工作。
-
嗨,我编辑了这个问题,希望它更清楚。
-
你能显示
response.getContentText()的结果吗,正在检索任何数据吗?另外,您可以检查响应是否包含您需要的内容here -
请注意,您在代码中调用的端点是指this。如果您需要使用 Search Analytics,则 url 结构必须是:
POST https://www.googleapis.com/webmasters/v3 /sites/siteUrl/searchAnalytics/query -
我将 var apiURL 更改为“googleapis.com/webmasters/v3/sites/MyWebsite/searchAnalytics/…”,并在“var options”中将
"method" : "GET"更改为"method" : "POST"。但是日志说startDate丢失了,我到底应该在哪里添加它?
标签: google-apps-script google-sheets google-api google-search-console