開発/制作/DIY記録
ガジェッターの新規記事通知システムを作りました。

ガジェッターに新着記事が追加されたらLINEで通知してくれる仕組みがあったら嬉しいですよね
正直ガジェッターのトップページをホーム画面に追加で簡単にアクセスできるようにしてるので、ラインでの通知システムが必要かどうかは微妙ですが、なんかあったら嬉しいですよね
タイトルに速報とあるように
まだ作り途中ですが、一応動くところまでは持って行けました
オープンソース精神として、みんなで改良していった方が一人でAIとやるよりいいかなと思うのでとりあえず途中ではありますが、いろいろ公開します
安定動作までいけたらやり方の詳しい解説とかもできたらいいですが、私の技術力では多分無理そうです
使った物・サービス
ガジェッターのRSS
ライン公式アカウント
グーグルアップスクリプト (GASってやつ)
チャットGPT無料プラン
簡単に作り方書いておきます
ライン公式アカウントでAPI(メッセージングAPIってやつ)を取得します
そこで、チャンネルアクセストークンってやつと、ユーザーIDってのをゲットします
そのあとグーグルアップスクリプトってやつにチャットGPTで作ったコードを貼り付けます
チャットGPTが生成したやつはこれです
| const RSS_URL = "https://gadgeteer.jp/rss.xml"; const CHANNEL_ACCESS_TOKEN = "あなたのチャネルアクセストークン"; const USER_ID = "あなたのユーザーID"; function checkRss() { const props = PropertiesService.getScriptProperties(); const xml = UrlFetchApp.fetch(RSS_URL).getContentText(); const doc = XmlService.parse(xml); const channel = doc.getRootElement().getChild("channel"); const items = channel.getChildren("item"); const lastGuid = props.getProperty("lastGuid"); // 初回実行 if (!lastGuid) { const latestGuid = items[0].getChildText("guid") || items[0].getChildText("link"); props.setProperty("lastGuid", latestGuid); Logger.log("初回設定完了"); return; } const newItems = []; for (let i = 0; i < items.length; i++) { const guid = items[i].getChildText("guid") || items[i].getChildText("link"); if (guid === lastGuid) { break; } newItems.push(items[i]); } if (newItems.length === 0) return; // 古い順に並べ替え newItems.reverse(); let text = `🆕 新着記事(${newItems.length}件)\n\n`; newItems.forEach((item, index) => { text += `${index + 1}. ${item.getChildText("title")}\n`; text += `${item.getChildText("link")}\n\n`; }); UrlFetchApp.fetch("https://api.line.me/v2/bot/message/push", { method: "post", headers: { Authorization: "Bearer " + CHANNEL_ACCESS_TOKEN, "Content-Type": "application/json" }, payload: JSON.stringify({ to: USER_ID, messages: [{ type: "text", text: text }] }) }); const newestGuid = items[0].getChildText("guid") || items[0].getChildText("link"); props.setProperty("lastGuid", newestGuid); } |
|---|
私のチャットGPTは無料プランなので、有料版のチャットGPTとかクロードとか使用した方が良いコードを生成できると思います
そのあと、トリガーってところで

時間ベースでリピーターを設定しました
リピーターが正しく動作してるかは微妙ですが、手動実行ではちゃんとLINEに通知が来ましたので多分いけてると思います。
関連記事
関連記事も見てくれるとすっごく嬉しいです。頑張って記事書いてるのでコメントとかもしてほしいです。

コメント (3件)