Я пытаюсь получить новые результаты с помощью функции поиска в API данных YouTube.Что мне нужно, так это получать новые результаты в виде выходных данных при каждом выполнении, т.е. без дублирования результатов.Я знаю, что это сделает разбиение на страницы, но я не знаю, как избежать дублирования результатов при каждом выполнении.
Я использую скрипт Google Apps для сценариев cron на стороне сервера, поэтому при каждом выполнении требуетсячтобы кэшировать результаты или не публиковать результаты, уже опубликованные.
Это мои два типа кода, один взят из одного из моих предыдущих вопросов, но это не решает мою проблему полностью, поэтому я прошу кого-нибудь решитьПроблемы.function searchByKeyword (nextPageToken) {var results = YouTube.Search.list ('id, snippet', {q: 'dogs', maxResults: 1, pageToken: nextPageToken});Logger.log (результаты) var item = results.items;var res = searchByKeyword (results.nextPageToken);Logger.log (res) // for (var i = 0; i
// var nextPageToken = '';
while (nextPageToken != null) {
var results
Logger.log('[%s] Title: %s', item.id.videoId, item.snippet.title);
}
}}
Приведенный выше код выводит так много результатов, чтомои требуемые результаты, которые мне нужно передавать при каждом выполнении.
/**
* @file getting Videos from Youtube with IDs
*/
/* exported userActionRun */
/**
* User action. Runs the snippet
*/
function userActionRun() {
var data = [];
var res = searchByKeyword_('trailers');
while (res.items.length && data.length < 10) {
data = data.concat(res.items);
res = searchByKeyword_('trailers', res.nextPageToken);
}
Logger.log(data.length);
Logger.log(
'\n%s',
data
.map(function(item, i) {
return Utilities.formatString('%s. %s', i + 1, item.snippet.title);
})
.join('\n')
);
}
/**
* Returns YouTube search result
* @param {string} keyword
* @param {string} nextPageToken
* @returns {object}
*/
function searchByKeyword_(keyword, nextPageToken) {
var q = { q: keyword, maxResults: '1', type: 'video' };
if (nextPageToken) q.pageToken = nextPageToken;
var results = YouTube.Search.list('id,snippet', q);
return results;
}
Этот код печатает результаты, но в каждом выполнении такие же результаты.