やりたいこと
ためしてみた
function getHatenaBlogEntriesAll() {
var USERNAME = PropertiesService.getScriptProperties().getProperty("USERNAME");
var BLOG_ID = PropertiesService.getScriptProperties().getProperty("BLOG_ID");
var API_KEY = PropertiesService.getScriptProperties().getProperty("API_KEY");
var API_URL = `https://blog.hatena.ne.jp/${USERNAME}/${BLOG_ID}/atom/entry`;
var headers = {
'Authorization': 'Basic ' + Utilities.base64Encode(USERNAME + ':' + API_KEY)
};
var options = {
'method': 'get',
'headers': headers,
'muteHttpExceptions': true
};
var entries = [];
var url = API_URL;
while (url) {
var response = UrlFetchApp.fetch(url, options);
var xmlContent = response.getContentText();
var document = XmlService.parse(xmlContent);
var root = document.getRootElement();
var atomNS = XmlService.getNamespace('http://www.w3.org/2005/Atom');
// 記事エントリ抽出
var entryNodes = root.getChildren('entry', atomNS);
entryNodes.forEach(function(entry) {
var links = entry.getChildren('link', atomNS);
var entryLink = '';
links.forEach(function(link) {
if (link.getAttribute('rel') && link.getAttribute('rel').getValue() === 'alternate') {
entryLink = link.getAttribute('href').getValue();
}
});
var entryData = [
entry.getChildText('title', atomNS), // タイトル
entryLink, // URL
entry.getChildText('published', atomNS) // 投稿日
];
entries.push(entryData);
});
// "next"リンク検索(次ページがなければ終了)
var links = root.getChildren('link', atomNS);
var nextUrl = '';
links.forEach(function(link) {
if (link.getAttribute('rel') && link.getAttribute('rel').getValue() === 'next') {
nextUrl = link.getAttribute('href').getValue();
}
});
url = nextUrl ? nextUrl : null;
}
return entries;
}
function writeTitlesUrlsAndDatesToSheet() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('NewsList');
sheet.clearContents();
sheet.getRange(1, 2, 1, 3).setValues([['title', 'link', 'published']]); // B1~D1
var entries = getHatenaBlogEntriesAll();
if (entries.length > 0) {
sheet.getRange(2, 2, entries.length, 3).setValues(entries); // B2~D(…
}
}

- 一覧化された物を見ながら偏りがあるなだったり、今度こういうの書こうと思いをはせる。