猫は最強。顔も中身もタイプ。
我が家の 2匹 の猫はとにかくかわいい。人の猫もとにかくかわいい。
お琴の先生宅に、猫が 5匹 いるから、その先生に習うことを決めた。(それ以外の理由もあるけど)
でも私は家の猫に好かれていない。それがまた、たまらなく良い。
追われるより追いたい!!!!
寝る前に見れたら最高なのではないかニャ?
いつ猫に会いたくなるか?そりゃ Always 。
でもなかなか上手くいかない。家の都合上飼えない人もいる。私あんまり我が家の子に好かれてないし…。
どうしたものか…。
私はもの凄く気にしいなので、寝る前に 振り返りという名の反省 をします。
でも、落ち込んだまま眠りにつくなんて悲しすぎる!
じゃあ寝る前に欠かさず見る「LINE」に猫を送りつけてみようではないか!!!!!!!
使ったものはこちらだニャ
利用したツールはこちらです!
- ランダムに猫の写真を生成するAPI:The Cat API
- コード:Google Apps Script (以下 GAS)
- LINE通知:LINE Notify
無料で定期実行したいんだニャ〜
はじめはJavaScriptとNode.jsを使ってAPIを叩いて、単発の実行は成功しました。
しかし、以下の課題も…
- お金をかけたくない(ケチなので)
- 定期的に実行したい(毎日癒やされたい)
そこで、GASの「トリガー」という自動実行の機能を使うことで今回のフローを 無料 で 定期実行 できるようになりました。
ちなみに、JavaScriptからGASへの変換は 話題のChatGPTにお任せ しました。
使ったGASのコードはこれだ!
課題を踏まえてGASを採用したけど、GASだと使えないライブラリがあったりするみたい。(と後から知った)
これからの勉強になった…!
// LINE Notifyのアクセストークン
const accessToken = 'YOUR_ACCESS_TOKEN'; // YOUR_ACCESS_TOKEN は置き換え
// ランダムな猫の画像を取得する関数
async function getRandomCatImage() {
try {
const response = await UrlFetchApp.fetch('https://api.thecatapi.com/v1/images/search');
const responseData = JSON.parse(response.getContentText());
const catImageUrl = responseData[0].url;
return catImageUrl;
} catch (error) {
console.error('猫の画像の取得に失敗しました:', error.message);
return null;
}
}
// LINEに通知する関数
async function sendLineNotification(message, image) {
try {
const formData = {
message: message,
imageThumbnail: image,
imageFullsize: image,
};
const response = await UrlFetchApp.fetch('https://notify-api.line.me/api/notify', {
method: 'post',
payload: formData,
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
Authorization: `Bearer ${accessToken}`,
},
});
console.log('LINEに通知しました:', response.getContentText());
} catch (error) {
console.error('LINE通知の送信に失敗しました:', error.message);
}
}
// ランダムな猫の画像を取得し、LINEに通知する処理を実行
async function notifyRandomCatImage() {
const catImage = await getRandomCatImage();
if (catImage) {
sendLineNotification('今日もお疲れさま。ゆっくり休んでね!', catImage);
}
}
// 関数を実行
notifyRandomCatImage();
制作タイム(ΦωΦ)
試行錯誤しながら作るニャ
こんな流れで作りました!
- LINE Notifyでアクセストークンの生成
- GASでコード記述
- GASでトリガーの設定
いざ、使ってみたニャ
テストとして、5分おきに通知がくるように設定しました!
無事通知が来ました!かわいい〜〜〜〜
GitHub Actionsを使ったNode.jsパターン!
GitHub Actionsを使うことで、GAS同様に定期実行は無料でできます!(と後から知った)
ということで、せっかく曲がりなりにもエンジニアということで試してみました。
コードはGitHubにあげてます。(私がこんなことする日が来るとは…)
コード書けなくても作れる、なんて便利な世の中!
コードも書けない私でしたが、JavaScriptからGASへの変換を 一発で やってくれるなんてChatGPTすごい、というのが第一の感想です!
GitHub Actionsって難しいイメージだったけど、意外にあっさり定期実行ができることに衝撃でした!
猫ちゃんAPIかわいい〜、API使いこなしていくための第一歩になりました!
これでぐっすり寝れそうだ!
参考にした記事たち