我正在尝试使用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“禁止”响应。