javascript - 谷歌分析 API Javascript : 403 Forbidden Error

标签 javascript api google-analytics

看在 Bob 的份上,请有人帮助我......

我正在尝试使用 Google Analytics API(Javascript 库)获取一些 Analytics 信息。我已经注册了我的应用程序并设置了 oauth2 东西。我可以很好地返回访问 token ,但是当我尝试发送请求以实际获取 Analytics 信息时,它返回 403 禁止错误。这是我的代码:

function auth() {
    var config = {
        'client_id': '[my_client_id]',
        'scope': 'https://www.googleapis.com/auth/analytics.readonly'
    };
    gapi.auth.authorize(config, function() {
        var retObj = gapi.auth.getToken();
        makeRequest(retObj.access_token);
    });
}

function makeRequest(accessToken) {
    var restRequest = gapi.client.request({
        'path': '/analytics/v3/data/ga',
        'params': {
            'access_token': accessToken,
            'ids': 'ga:[table_number]',
            'metrics': 'ga:pageviews,ga:uniquePageviews',
            'start-date': '2011-11-01',
            'end-date' : '2011-12-01'               
        }
    });
    restRequest.execute(function(resp) { console.log(resp); });
}

auth() 函数是通过单击按钮执行的,就像我说的,获取访问 token 不是问题。当我执行 makeRequest 函数时,出现了 403 错误。有人知道这里的交易是什么吗?

感谢提前回答的人!!

最佳答案

在我的例子中,我得到了 403 Forbidden,因为在我的浏览器中,我使用一个没有权限访问我试图访问的 GA 配置文件的帐户登录谷歌。在发现该问题之前,我遇到了 Aksival 在上面发布的解决方案所针对的 tableID 的问题。

这是我的工作代码供您引用:

<script type="text/javascript">
    //GET THESE HERE https://code.google.com/apis/console/
    var clientId = 'YOURCLIENTIDHERE';
    var apiKey = 'YOURAPIKEYHERE';

    //GET THIS HERE http://code.google.com/apis/analytics/docs/gdata/v3/gdataAuthorization.html
    var scopes = 'https://www.googleapis.com/auth/analytics.readonly';

    //INITIALIZE
    function handleClientLoad() {
        gapi.client.setApiKey(apiKey);
        window.setTimeout(checkAuth,1);
    }

    function checkAuth() {
        gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: true}, handleAuthResult);
    }

    function handleAuthResult(authResult) {
        if (authResult) {
            makeApiCall();
        } else {            
            requestAuth();
        }
    }

    function requestAuth() {
        gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: false}, handleAuthResult);
    }

    function makeApiCall() {
        gapi.client.load('analytics', 'v3', function() {
            var request = gapi.client.analytics.data.ga.get({
                'ids':'ga:YOURTABLEIDHERE', 'start-date':'2012-01-01', 'end-date':'2012-02-01', 'metrics':'ga:visits', 'metrics':'ga:visits', 'start-index':1, 'max-results':1000
            });
            request.execute(function(resp) { console.log(resp.totalsForAllResults); });
        });
    }
</script>
<script src="https://apis.google.com/js/client.js?onload=handleClientLoad"></script>

关于javascript - 谷歌分析 API Javascript : 403 Forbidden Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8466625/

相关文章:

google-analytics - Google Analytics(分析):导出每个访问者

javascript - 选择2 : delete the element selected by pressing delete key

javascript - Angular 2 中的 tinymce 编辑器

javascript - 使用 Javascript URL 发布表单

javascript - 在 iframe 中运行 Google Analytics?

merge - 两个Google Analytics(分析)帐户

javascript - 具有相同域的同源策略,但 https

ruby-on-rails - 你如何使用 Rails 5.2 wrap_parameters?

java - 从 MATLAB 外部与 Activity MATLAB session 进行简单交互

python - 如何使用 python 请求进行多个 api 调用