我正在构建一个仪表板,该仪表板将从GA提取数据。为此,我需要通过Google帐户获取访问令牌,然后需要使用包含此经过身份验证的令牌的标头查询GA。
这是我的代码:
$.ajax({
async: false,
url: "https://www.google.com/accounts/ClientLogin?accountType=GOOGLE&Email=EMAIL&Passwd=PASSWORD&service=analytics",
success : function(data) {
var auth = data.substring(data.indexOf("Auth=") + 5);
console.log(auth);
$.ajax({
type: 'get',
headers: {
"Content-type": "application/x-www-form-urlencoded",
"Authorization": "GoogleLogin Auth=" + auth,
"GData-Version": "2",
},
url: "https://www.google.com/analytics/feeds/data?ids=ga:PROFILE&start-date=2011-08-16&end-date=2012-06-16&max-results=10000",
});
}
});
不幸的是,这种方法不起作用。如果有人能给我一些指导,使我知道如何使它工作或更好地验证这种请求,那么将不胜感激。
最佳答案
它不起作用,因为ClientLogin需要一个post
请求而不是get
。它也是deprecated。
您似乎也违反了same-origin policy的ajax请求。
使用OAuth 2 version with a refresh token。您可以在网站上使用client libraries之一,并将ajax请求发布到您自己的页面上。
关于javascript - 适用于Google Analytics(分析)API的jQuery AJAX header 验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11564580/