Я хочу получать отчет Analytics для каждого видео в фирменном аккаунте. Я следую инструкциям на этом сайте. Ссылка: https://mashe.hawksey.info/2017/10/getting-youtube-analytics-with-google-apps-script-when-you-get-authentication-loops/
В руководстве я предоставляю способ получения и хранения авторизованного токена с помощью библиотеки "cGoa".
Мой подход заключается в том, чтобы сначала получить все видео в учетной записи YoutUbe и сохранить их в массиве, а затем получить аналитику для каждого видео с циклом. Но я получаю ошибки при запуске кода для получения видео с канала.
Ниже приведен код, который я хотел использовать для получения видео.
Примечание. Я использую библиотеку YouTube, приведенную в руководстве, которое я прочитал по ссылке выше
var goa = cGoa.GoaApp.createGoa('youtube-analytics',
PropertiesService.getUserProperties())
.execute();
YouTube.setTokenService(function(){ return goa.getToken(); } );
//YouTubeAnalytics.setTokenService(function(){ return goa.getToken(); });
var results = YouTube.channelsList('id,snippet,contentDetails,statistics', {mine: true});
//Logger.log(results[0].contentDetails.relatedPlaylists.uploads);
//Logger.log(results[0].id);
var channelId = results[0].id;
for(var i in results) {
var item = results[i];
// Get the playlist ID, which is nested in contentDetails, as described in the
// Channel resource: https://developers.google.com/youtube/v3/docs/channels
var playlistId = item.contentDetails.relatedPlaylists.uploads;
var nextPageToken = '';
var titleArray = [];
var idArray = [];
var reportArray = [];
// This loop retrieves a set of playlist items and checks the nextPageToken in the
// response to determine whether the list contains additional items. It repeats that process
// until it has retrieved all of the items in the list.
while (nextPageToken != null) {
var playlistResponse = YouTube.playlistItemsList('snippet', {
playlistId: playlistId,
maxResults: 25,
pageToken: nextPageToken
});
for (var j = 0; j < playlistResponse.items.length; j++) {
var playlistItem = playlistResponse.items[j];
//Logger.log('[%s] Title: %s',
//playlistItem.snippet.resourceId.videoId,
//playlistItem.snippet.title);
titleArray[j] = playlistItem.snippet.title;
idArray[j] = playlistItem.snippet.resourceId.videoId;
var videoId = playlistItem.snippet.resourceId.videoId;
reportArray[j] = runYoutubeAnalyticsReport(channelId , videoId)
}
//Browser.msgBox("hellon");
nextPageToken = playlistResponse.nextPageToken;
}
create_cheet(idArray , titleArray , reportArray);
}
}
Когда я запускаю код, это ошибка, которую я получаю
Error: { "error": { "errors": [ { "domain": "youtube.part", "reason": "unknownPart", "message": "snippet?pageToken=CBkQAA", "locationType": "parameter", "location": "part" } ], "code": 400, "message": "snippet?pageToken=CBkQAA" } } (line 83, file "Youtube", project "YouTube")
Я боролся с этой проблемой уже более недели. Надеюсь, я найду решение этой проблемы. Я высоко ценю вашу помощь и ответ. Спасибо Вам!