我正在构建一个网络应用程序,该应用程序将在我们的 Google Analytics 帐户上执行某些任务,但由于“userRateLimitExceeded”而出现错误。
我目前拥有的:
(1) 对管理账户列表运行正常(非批处理)查询。
(2) 为每个帐户上的所有网络资源运行第二个批处理查询。
第一个查询按预期运行,第二个批处理查询完成,但每个子查询都有相同的错误“配额错误:超出用户速率限制。”。
据我了解,客户端库实现了一种速率限制机制,可确保不会发生这种情况。谁能解释发生了什么来帮助解决这个问题,很可能我做错了什么。预先感谢您提供的任何帮助。
(function(window){
"use strict";
var dataStore = new GlobalDataStore();
function handleAccountProperties(AccountProperties){
console.log(AccountProperties);
}
function getAccountProperties(){
var batch = gapi.client.newBatch();
for (var i = 0; i < dataStore.accounts.length; i++) {
var account = dataStore.accounts[0];
var request = gapi.client.analytics.management.webproperties.list({
'accountId': account.details.id
});
batch.add(request);
}
batch.then(function(response){
handleAccountProperties(response.result);
}, function(reason){
console.log('Error: ' + reason.result.error.message);
});
};
function getAndHandleAccounts(){
var request = gapi.client.analytics.management.accounts.list();
request.then(function(response) {
if(response.result.items && response.result.items.length) {
for (var i = 0; i < response.result.items.length; i++) {
var account = new GoogleAnalyticsAccount();
account.details = response.result.items[i];
dataStore.accounts.push(account);
}
getAccountProperties();
}
});
};
function authorise(){
var authData = {
client_id: dataStore.clientID,
scope: dataStore.scopes,
immediate: false
};
gapi.auth.authorize(authData, function(response) {
if (response.error) {
console.error('shit went wrong');
} else {
gapi.client.load('analytics', 'v3').then(getAndHandleAccounts);
}
});
};
window.onload = authorise;
})(window);