javascript - 管理 API 的结果已过时

标签 javascript google-analytics google-api google-analytics-api user-management

我正在构建一个仪表板,可以向我显示用户有权访问的所有 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/

相关文章:

javascript - 什么时候调用 document.appendChild()?

javascript - 如何使用 ng-repeat 对二维 json 对象应用过滤器?

python - BigQuery Load 作业的无架构解决方案

ios - 用于 Objective-C 的 Google API 客户端库 : Youtube upload to 'master account'

javascript - Google Drive API 请求限制

javascript - 从 Javascript 数组或类型化数组继承

javascript - 类型错误 : modules[moduleId] is undefined

google-analytics - 用户 ID 未显示在 BigQuery 中

google-analytics - Google Analytics DataChart - 如何创建具有多个系列的单个折线图?

android - 如何通过在 Android 中使用内容 uri(_not_ 文件 uri)的 Intent 传递单个图像