Google API无故回应403禁止

时间:2018-08-13 20:33:28

标签: javascript node.js google-api google-api-nodejs-client

我正在尝试使用Google youtube Analytics API,但我的请求正在收到此回复:

{ code: 403,
  message: 'Forbidden',
  errors: [ { message: 'Forbidden', domain: 'global', reason: 'forbidden' } ]
}

在此之前,我得到的回应是我需要为我的服务帐户启用youtube分析服务(确实如此)。

是什么原因造成的?当原因只是“禁止”时,我应该如何调试呢?

以下是创建请求的代码:

const result = await youtubeAnalytics.reports.query({
  "ids": "channel==MINE",
  "startDate": "2017-01-01",
  "endDate": "2017-12-31",
  "metrics": "views,estimatedMinutesWatched,averageViewDuration,averageViewPercentage,subscribersGained",
  "dimensions": "day",
  "sort": "day"
})

下面是创建youtubeAnalytics实例的代码:

const { google } = require('googleapis');
const googleServiceAccount = require('../google-service-account.dev');
const scopes = [
  'https://www.googleapis.com/auth/youtube.readonly'
];

const jwtClient = new google.auth.JWT(
  googleServiceAccount.client_email,
  null,
  googleServiceAccount.private_key,
  scopes,
  null
);

const youtubeAnalytics = google.youtubeAnalytics({
  version: 'v2',
  auth: jwtClient,
});

该服务帐户是通过我的Google开发人员控制台创建的,角色为“项目>查看器”。

编辑:由于我正在尝试访问YouTube分析(结果相同),因此尝试将scope切换为https://www.googleapis.com/auth/yt-analytics.readonly

编辑2:还尝试使用youtube数据API来查看其是否有效。我可以将搜索请求发送到数据API,但似乎无法将查询请求发送到Analytics API(这两个范围都可以)。

编辑3:当我添加https://www.googleapis.com/auth/yt-analytics-monetary.readonly范围时,我做了一些简短的工作,但现在我又回到了同样无用的403“禁止”响应。

0 个答案:

没有答案