我正在构建一个仪表板,可以向我显示用户有权访问的所有 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 [];
});
}
最佳答案
Account user links列出有权访问帐户 Profile user links 的用户列出有权访问配置文件的用户。用户无需访问帐户即可访问个人资料。默认情况下,有权访问帐户的用户将有权访问所有配置文件。
我认为您应该检查 Google 分析并查看从帐户级别或个人资料级别删除用户的具体位置。 google api 返回存在的数据,它不缓存数据或从任何其他地方读取数据。我建议不要从帐户中删除相关用户。
关于javascript - 管理 API 的结果已过时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48497192/