我正在制作一个信息中心,可以向我显示用户有权访问的所有Google Analytics帐户的用户。
到目前为止,我已经能够检索帐户的所有用户,但它还列出了过去2个月内已被删除的用户。 用户列在restful api和javascript api上,但在google analytics中使用内置用户管理仪表板时未列出。
我已尝试使用文档示例界面:Account User link以及具有相同结果的javascript api。
管理API的结果是否已缓存,如果是,我可以强制更新它们吗?
以下代码:
function queryAccounts() {
return gapi.client.analytics.management.accountSummaries.list();
}
function queryUsers(accountId) {
const handle_paging = (res, items) => {
if (res.result.nextLink !== undefined) {
return gapi.client.analytics.management.accountUserLinks.list({
accountId: accountId,
startIndex: res.result.itemsPerPage + res.result.startIndex
}).then(
page_res => handle_paging(page_res, items.concat(res.result.items)),
page_err => {
console.error(page_err);
return items;
});
} else {
return items.concat(res.result.items);
}
}
return gapi.client.analytics.management.accountUserLinks.list({ accountId: accountId }).then(
res => handle_paging(res, []),
err => {
console.error(err);
return [];
}
)
}
function queryUsersAllWebProperties(accountId) {
const handle_paging = (res, items) => {
if (res.result.nextLink !== undefined) {
return gapi.client.analytics.management.webpropertyUserLinks.list({
accountId: accountId,
webPropertyId: "~all",
"start-index": res.result.itemsPerPage + res.result.startIndex
}).then(
page_res => handle_paging(page_res, items.concat(res.result.items)),
page_err => {
console.error(page_err);
return items;
});
} else {
return items.concat(res.result.items);
}
}
return gapi.client.analytics.management.webpropertyUserLinks.list({
accountId: accountId,
webPropertyId: "~all"
}).then(
res => handle_paging(res, []),
err => {
console.error(err);
return [];
});
}
答案 0 :(得分:0)
Account user links列出有权访问帐户的用户Profile user links列出有权访问个人资料的用户。用户无权访问帐户即可访问配置文件。默认情况下,有权访问帐户的用户可以访问所有配置文件。
我认为您应该检查Google分析,并查看从帐户级别或个人资料级别删除用户的确切位置。谷歌api返回存在的数据,它不会缓存数据或从任何其他地方读取数据。我建议有问题的用户尚未从帐户中删除。