Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

News Reminder LINE Bot

このプロジェクトは、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

セットアップ手順

  1. LINE Messaging API チャネルの作成: LINE Developerコンソールでチャネルを作成し、「チャネルアクセストークン」を発行します。
  2. スクリプトプロパティの設定: GASエディタの「プロジェクトの設定」からスクリプトプロパティを追加し、プロパティを TOKENとし、値に上記で取得したLINEのチャネルアクセストークンを設定します。
  3. スプレッドシートの準備: GASをコンテナバインドスクリプトとして作成している場合(またはStandaloneから対象シートを指定している場合)、シート名を適切に設定します。A列から以下のような構造でデータが記録されます。
    • 1列目: タイムスタンプ
    • 2列目: 送信されたメッセージ (URL)
    • 3列目: 記事タイトル
    • 4列目: 経過日数カウンター (初期値: 1)
    • 5列目: ユーザーID
    • 6列目: ユーザーの表示名
  4. GASのデプロイ: このプロジェクトを「ウェブアプリ」としてデプロイします。アクセスできるユーザーを「全員」に設定して発行されたURLを、LINE Developerコンソールの「Webhook URL」に設定して有効化します。
  5. トリガーの設定: day_counter 関数に対して、毎日特定の時間(例:午前8時〜9時)に実行されるようGASの「トリガー」機能を用いた定期実行スケジュールを設定してください。

ファイル構成

  • Webhook.js: LINEからのWebhookを受け取り(doPost)、メッセージの解析・URLからの情報取得・スプレッドシートへの記録・リプライ返信などの基本処理を行います。
  • main.js: 定期リマインド (day_counter) および ランダム抽出 (random_pusher) を行う処理が記述されています。
  • appsscript.json: タイムゾーンや使用ライブラリなどのプロジェクト設定が記載されています。

About

LINEで記事のURLを保存し、最適なタイミングで再リマインドしてくれるbot用GASアプリケーション

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages