Google Analytics嵌入API gapi.analytics.auth.isAuthorized()始终返回false

时间:2016-01-14 12:52:17

标签: javascript google-analytics google-api

我正在尝试在我的CMS中嵌入Google Analytics。我想检查用户是否已获得授权,如果是,我会显示“退出”按钮,以便他们可以退出,然后使用其他Google帐户登录。

我有退出按钮工作,但除非用户已登录,否则我不希望它显示。

根据文档,这应该工作:     gapi.analytics.auth.isAuthorized()

但是当我将其记录到控制台时,它总是返回false。

以下是我的代码:

gapi.analytics.ready(function() {

        /**
         * Authorize the user immediately if the user has already granted access.
         * If no access has been created, render an authorize button inside the
         * element with the ID "embed-api-auth-container".
         */
        gapi.analytics.auth.authorize({
            container: 'embed-api-auth-container',
            clientid: 'XXXXX'
        });

        console.log(gapi.analytics.auth.isAuthorized());

请有人能告诉我我做错了吗?

1 个答案:

答案 0 :(得分:0)

我的答案有点迟了但也许会帮助别人。

Google analytics api使用OAuth 2.0进行授权,以及 代码中的gapi.analytics.auth.isAuthorized()始终返回false,因为当前没有授权用户。

您可以轻松检查是否有授权用户:

var isAuthorized = gapi.analytics.auth.isAuthorized();

if(isAuthorized == true) {
  // display sign out button
}else {
  // display sign in button
}

如果您已拥有访问令牌,则可以包含授权,用户将自动登录:

gapi.analytics.auth.authorize({
    container: 'embed-api-auth-container',
    clientid: 'XXXXX',
    serverAuth: {
       access_token: 'XXXXX'
    }
});

并运行检查:

var isAuthorized = gapi.analytics.auth.isAuthorized();

if(isAuthorized == true) {
  // display sign out button
}else {
  // display sign in button
}