我最近开始使用Google Apps脚本自动执行某些Google Analytics报告任务。 Google Analytics服务返回的许多对象都有“获取”函数,这些函数以字符串形式返回网址。实际上,许多Google Apps脚本对象都具有返回这些资源网址的功能,而不仅仅是Google的Analytics Services。表明我可以以某种方式使用这些URL来引用Google Apps资源并获取对象作为回报,但我不知道如何。
我尝试在浏览器中加载其中一个URL,期望使用JSON或我可以使用的其他东西,但却收到了404错误。当我尝试使用Google Apps脚本UrlFetchApp请求网址时也是如此。
这是一个简单的例子:
var accountId = '0123456789'; // Pretend this is a valid account number
// Get the first WebProperty
var webProp = Analytics.Management.Webproperties.list(accountId).getItems()[0];
// ...getHref() is along the lines of "https://www.googleapis.com/analytics/v3/management/accounts/0123456789"
var parentHref = webProp.getParetLink().getHref();
问题是,如何使用parentHref
来恢复Google Analytics帐户对象?我觉得我错过了一些非常基本的东西......
资源:
答案 0 :(得分:0)
这不是激活API。它显然很活跃,因为他已经获得了分析数据。
您不能仅仅提取这些网址,因为您缺少与调用需要身份验证和权限的网址相关的OAuth相关代码。
答案 1 :(得分:0)
阅读Using OAuth 2.0 to Access Google APIs,将帮助您获得所需。
我添加了一个非常基本的代码,可以作为指南。
/* CODE FOR DEMONSTRATION PURPOSES */
function authorizeGAS() {
var result = false;
var oauthConfig = UrlFetchApp.addOAuthService("google");
oauthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
oauthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?" +
"scope=https://www.googleapis.com/auth/analytics.readonly");
oauthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
oauthConfig.setConsumerKey(ScriptProperties.getProperty("YOUR_ANALYTICS_CONSUMER_KEY"));
oauthConfig.setConsumerSecret(ScriptProperties.getProperty("YOUR_ANALYTICS_CONSUMER_SECRET"));
var requestData = {
"method": "GET",
"oAuthServiceName": "google",
"oAuthUseToken": "always"
};
var URL = "https://www.googleapis.com/analytics/v3/management/accounts/~all/webproperties/~all/profiles";
try {
result = JSON.parse(UrlFetchApp.fetch(URL, requestData).getContentText());
} catch (e) {
if (e.message) Logger.log(e.message);
}
Logger.log(result);
return result;
}