我正在尝试使用谷歌分析 realtime api . 我可以毫无问题地使用非实时api .

这是我到目前为止所做的:

  • 注册了有限的beta实时api

  • 在google开发者控制台中设置了一个项目

  • 在项目上启用Google Analytics API和Google Analytics分析报告API

  • 创建服务以服务json凭据 .

  • 添加了这些凭据的client_id电子邮件,以便能够访问我们的GA数据

当我执行此请求(非实时)时,它工作正常:

const { google } = require('googleapis')
const scopes = 'https://www.googleapis.com/auth/analytics.readonly';

const key = require('./key.json')
const jwt = new google.auth.JWT(key.client_email, null, key.private_key,scopes)

const view_id = '23423424'; // GA view ID 

async function getData() {
  const response = await jwt.authorize()
  const result = await google.analytics('v3').data.ga.get({
    'auth': jwt,
    'ids': 'ga:' + view_id,
    'start-date': '30daysAgo',
    'end-date': 'today',
    'metrics': 'ga:pageviews'
  })

  console.dir(result)
}

getData()

但是,如果我使用范围字符串 https://www.googleapis.com/analytics/v3/data/realtime (这是谷歌提到的范围:https://developers.google.com/analytics/devguides/reporting/realtime/v3/reference/data/realtime/get

我对请求的拒绝承诺说:

Error: invalid_scope: https://www.googleapis.com/analytics/v3/data/realtime is not a valid audience string.

我已经注册了实时api的有限测试版,但大概是在20个小时前 . 它说最多24小时,但通常会更快自动列入白名单 . 我不知道如何测试我是否有访问权限 .