Open2
GASで「サイトの日付が変わったらslack通知を飛ばす」

設定してみたが、果たしてちゃんと動くのか。。様子見のためメモ。
コード
function extractDateFromHTML(htmlContent) {
const cheerioCode = `
var $ = Cheerio.load(Html);
var dateElement = $('div._root_oq6og_1').find('h2._title_oq6og_7');
var date = dateElement.text().trim();
date;
`;
const result = eval(cheerioCode.replace('Html', JSON.stringify(htmlContent)));
return result;
}
function sendWeeklyHoroscopeNotification() {
const url = "https://shiitakeuranai.jp/weekly-horoscope/";
const response = UrlFetchApp.fetch(url);
const htmlContent = response.getContentText();
const date = extractDateFromHTML(htmlContent);
const webhookUrl = "https://app.slack.com/client/XXXXXXXXXXXXXXXXXXXx";
const message = "【通知】週間しいたけ占いの日付が変わりました! https://shiitakeuranai.jp/weekly-horoscope/";
const slackResponse = UrlFetchApp.fetch(webhookUrl, {
method: "post",
payload: JSON.stringify({ text: message }),
contentType: "application/json"
});
}
上記を動かすためにライブラリにCheerioを埋め込み
ライブラリID
1ReeQ6WO8kKNxoaA_O0XEQ589cIrRvEBA9qcWpNqdOP17i47u6N9M5Xh0
トリガー
時間主導で15分おきに設定
*毎週月曜更新だが、時間はばらばらなので正確なトリガーを設定することができないため

通知が飛ばず。
以下のコードで再度様子を見る
function extractDateFromHTML(htmlContent) {
const cheerioCode = `
const cheerio = Cheerio.load(Html);
const dateElement = cheerio('div._root_oq6og_1').find('h2._title_oq6og_7');
const date = dateElement.text().trim();
date;
`;
const result = eval(cheerioCode.replace('Html', '`' + htmlContent + '`'));
return result;
}
function sendWeeklyHoroscopeNotification() {
const url = "https://shiitakeuranai.jp/weekly-horoscope/";
const response = UrlFetchApp.fetch(url);
const htmlContent = response.getContentText();
const date = extractDateFromHTML(htmlContent);
const webhookUrl = "https://app.slack.com/client/T05DP6G6HB3/D05P63XL8VB?selected_team_id=T9N359AV9";
const message = "【通知】週間しいたけ占いの日付が変わりました! https://shiitakeuranai.jp/weekly-horoscope/";
const slackResponse = UrlFetchApp.fetch(webhookUrl, {
method: "post",
payload: JSON.stringify({ text: message }),
contentType: "application/json"
});
}```