このプロジェクトは、LINE botを通じてニュースや記事のURLを登録し、後日指定されたタイミングでリマインド通知を送るための Google Apps Script (GAS) アプリケーションです。また、過去に登録した記事からランダムで1つを振りかえる機能も備えています。
- URLの登録とタイトル自動取得: LINE botにテキスト(URL)を送信すると、送信されたURLにアクセスし
<title>タグを自動で取得してスプレッドシートに記録します。 - 定期リマインド通知 (
day_counter): 登録から経過した日数に応じて、最適なタイミング(2, 7, 14, 30, 60日後、または100日の倍数)で記事を再通知します。 - ランダム振り返り機能 (
random_pusher): LINE botに「random-news」とメッセージを送信すると、過去に登録した記事の中からランダムに1件をプッシュ通知で返信します。
- Google スプレッドシート: データの記録用として連携されたスプレッドシートが必要です。
- LINE Messaging API: ユーザーからのWebhook受け取りおよびメッセージのプッシュ / リプライ送信に使用します。
- Parser ライブラリ: URLからのタイトル抽出処理に使用しています。(Library ID:
1Mc8BthYthXx6CoIz90-JiSzSafVnT6U3t0z_W3hLTAX5ek4w0G_EIrNw)
- LINE Messaging API チャネルの作成: LINE Developerコンソールでチャネルを作成し、「チャネルアクセストークン」を発行します。
- スクリプトプロパティの設定:
GASエディタの「プロジェクトの設定」からスクリプトプロパティを追加し、プロパティを
TOKENとし、値に上記で取得したLINEのチャネルアクセストークンを設定します。 - スプレッドシートの準備:
GASをコンテナバインドスクリプトとして作成している場合(またはStandaloneから対象シートを指定している場合)、シート名を適切に設定します。A列から以下のような構造でデータが記録されます。
- 1列目: タイムスタンプ
- 2列目: 送信されたメッセージ (URL)
- 3列目: 記事タイトル
- 4列目: 経過日数カウンター (初期値: 1)
- 5列目: ユーザーID
- 6列目: ユーザーの表示名
- GASのデプロイ: このプロジェクトを「ウェブアプリ」としてデプロイします。アクセスできるユーザーを「全員」に設定して発行されたURLを、LINE Developerコンソールの「Webhook URL」に設定して有効化します。
- トリガーの設定:
day_counter関数に対して、毎日特定の時間(例:午前8時〜9時)に実行されるようGASの「トリガー」機能を用いた定期実行スケジュールを設定してください。
Webhook.js: LINEからのWebhookを受け取り(doPost)、メッセージの解析・URLからの情報取得・スプレッドシートへの記録・リプライ返信などの基本処理を行います。main.js: 定期リマインド (day_counter) および ランダム抽出 (random_pusher) を行う処理が記述されています。appsscript.json: タイムゾーンや使用ライブラリなどのプロジェクト設定が記載されています。