提前道歉 - 我是使用Google Apps脚本的完全初学者。
我有一个关于如何将数据从YouTube API调用转移到Google表格的问题。我已经设置了下面的代码,它从频道ID和循环中搜索视频(超出50个结果限制)。
我想将脚本中定义的四个变量拉回到Google表格中 - 发布时间,标题,ID和URL,即有关频道中所有7,000多个视频的这四个元素的信息。所有这些信息似乎都使用Logger.log行成功记录。
我现在想要传输记录到Google表格的信息。我尝试过不同的方法,但我只是成功地撤回了上一个视频的细节。
任何人都可以建议我需要在'var ActiveSheet'行之后添加到最后一节的代码才能使这项工作成功吗?
正如我所说,如果这是一个愚蠢的问题,请道歉。
function myFunction() {
var nextPageToken = '';
while (nextPageToken != null) {
var sr = YouTube.Search.list("snippet", {
channelId:'UC14UlmYlSNiQCBe9Eookf_A',
maxResults: 50,
pageToken: nextPageToken
});
for (var j = 0; j < sr.items.length; j++) {
var srItem = sr.items[j];
var PublishedAt = srItem.snippet.publishedAt;
var Title = srItem.snippet.title;
var ID = srItem.id.videoId;
var URL = srItem.snippet.thumbnails.high.url;
Logger.log('[%s] Title: %s Id: %s Url: %s',
srItem.snippet.publishedAt,
srItem.snippet.title,
srItem.id.videoId,
srItem.snippet.thumbnails.high.url);
}
nextPageToken = sr.nextPageToken;
}
var ss = SpreadsheetApp.getActiveSpreadsheet();
var activeSheet = ss.getActiveSheet();
}
任何帮助都将受到大力赞赏。
谢谢,
KC
您需要捕获每一行然后保存在一个数组中。然后,您可以将行插入到工作表中。以下代码执行此操作。
function myFunction() {
var nextPageToken = '';
// to hold data rows
var results = [];
// add header row
results.push(['Published At', 'Title', 'ID', 'URL']);
while (nextPageToken != null) {
var sr = YouTube.Search.list('snippet', {
channelId: 'UC14UlmYlSNiQCBe9Eookf_A',
maxResults: 50,
pageToken: nextPageToken
});
for (var j = 0; j < sr.items.length; j++) {
var srItem = sr.items[j];
var PublishedAt = srItem.snippet.publishedAt;
var Title = srItem.snippet.title;
var ID = srItem.id.videoId;
var URL = srItem.snippet.thumbnails.high.url;
// add every row
results.push([PublishedAt, Title, ID, URL]);
}
nextPageToken = sr.nextPageToken;
}
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
// get range and set values
// row to start, col to start, how many rows, how many cols
sheet.getRange(1, 1, results.length, 4).setValues(results);
}