Google Apps Script で YouTube Reporting API を使用しました。コードの変更はありませんが、Forbidden は 1 月 12 日にスローされます。
Googleのドキュメントを参考に、以下のコードを書きました。
var myChannels = YouTube.Channels.list('id', {mine: true});
var channel = myChannels.items[0];
var today = new Date();
var todayFormatted = Utilities.formatDate(today, 'JST', 'yyyy-MM-dd');
var videoId = "MY_VIDEO_ID";
try {
var results = YouTubeAnalytics.Reports.query(
'channel==' + channel.id,
todayFormatted,
todayFormatted,
'views',
{
dimensions: 'day',
sort: '-day',
filters:'video==' + videoId
});
} catch (e) {
Logger.log(e) //Exception: Forbidden
}
OAuth 認証、YouTube アナリティクス API は、Google デベロッパー コンソールと高度な Google サービスで有効になっています。
私のアカウントに問題があると思いますが、他のアカウントでも同じ問題が発生しています。不思議なことに、APIs Explorer では正常に動作します。
おそらく、これは以下の投稿と同じ問題です。
原因は、 OAUTH2 SCOPES に「yt-analytics.readonly」が含まれていないためだと思います。
実際、OAUTH2 SCOPES の API Explorer には yt-analytics.readonly が含まれていました。したがって、正常に実行できました。おそらく、1 月 12 日よりも前です。ただし、このスクリプトでは YouTube アナリティクス API を使用していますが、yt-analytics.readonly は含まれていません。
なぜこのような問題が起きているのでしょうか?