まずはこちらからファイルをダウンロードしてください

ファイルをダウンロードする

目次

  1. 必要なアカウントを準備する
  2. LINE Developers でbotを作る(公式LINEの設定)
  3. Supabase でデータの保存先を準備する
  4. コードに情報を入力する
  5. Vercel でインターネット上に公開する
  6. LINEとコードをつなぐ
  7. グループに招待する
  8. 毎朝配信について
  9. 基本的な使い方
  10. つまずきやすいポイント
1

必要なアカウントを準備する

以下の3つのサービスの無料アカウントが必要です。すでに持っている場合はスキップしてください。

サービス用途料金
LINE Developers
developers.line.biz
公式LINEのbotチャンネルを作成・管理する無料
Supabase
supabase.com
タスクや配信予約を保存する場所無料枠あり
Vercel
vercel.com
コードをインターネット上で動かす無料枠あり
すべて無料枠の範囲で動かせます。

LINE公式アカウントの無料枠:月200通まで
このbotが送るメッセージ1回(グループへの配信)= 1通としてカウントされます。たとえばグループが1つで毎朝配信する場合、1ヶ月で約30通の消費です。グループ数が増えると通数も増えるので注意してください。

200通を超えると有料(従量課金)になります。少人数・小規模の運用であれば無料枠で十分まかなえます。
2

LINE Developers でbotを作る
(公式LINEのbot設定ページ)

1

LINE Developersにログインし、「プロバイダー」を作成します(すでにある場合はスキップ)。

2

「チャンネルを作成」→「Messaging API」を選択します。

チャンネル名・説明を入力して作成します(名前はグループのメンバーに見えます)。

3

作成したチャンネルの「Messaging API設定」タブを開き、一番下の「チャネルアクセストークン(LINEにアクセスするための鍵)」→「発行」を押してコピーします。

→ 後でコードに貼り付けます。

4

Basic settings」タブを開き、「Channel secret(なりすまし防止の合言葉)」をコピーします。

→ 後でコードに貼り付けます。

5

「Messaging API設定」タブで「Allow bot to join group chats」をONにします(グループに追加できるようになります)。

3

Supabase でデータの保存先を準備する
(タスクや配信予約を保存する場所)

1

supabase.com にログインし、「New project」でタスクを作成します。

パスワードはメモしておいてください。リージョンは「Northeast Asia (Tokyo)」推奨。

2

Project Settings」→「API」から以下の2つをコピーします。

  • Project URL(接続先のアドレス)
  • service_role(secret)(データ保存先への管理者キー)
3

SQL Editor」を開き、以下のSQLを貼り付けて「Run」を押します。テーブルが自動で作成されます。

-- タスク・タスク管理
create table tasks (
  id uuid default gen_random_uuid() primary key,
  group_id text not null,
  content text not null,
  assignee text,
  done boolean default false,
  created_at timestamptz default now()
);

-- グループ情報
create table group_info (
  group_id text primary key,
  name text not null,
  bot_type text,
  morning_schedule text default 'daily',
  created_at timestamptz default now()
);

-- 予約配信
create table scheduled_messages (
  id uuid default gen_random_uuid() primary key,
  group_id text not null,
  send_date date,
  message text not null,
  sent boolean default false,
  recurrence text,
  created_at timestamptz default now()
);
4

コードに情報を入力する
(鍵やパスワードを所定の場所に貼り付けるだけ)

1

配布されたコードフォルダをPCの好きな場所に置きます。

2

.env.local.example をコピーして、ファイル名を .env.local に変更します。

3

.env.local をテキストエディタで開き、各項目を入力します。

LINE_CHANNEL_ACCESS_TOKEN=(STEP 2-3 でコピーしたもの)
LINE_CHANNEL_SECRET=(STEP 2-4 でコピーしたもの)
SUPABASE_URL=(STEP 3-2 でコピーしたURL)
SUPABASE_SERVICE_ROLE_KEY=(STEP 3-2 でコピーしたキー)
CRON_SECRET=(自分で決める文字列 例: mybot2026)
BOT_TYPE=(自分で決める識別子 例: mybot)
ADMIN_USER_ID=(自分のLINE userId ※取得方法は下記)
ALLOWED_USER_IDS=(個別チャットで操作できるuserId)
userId の取得方法:
botをグループに入れた後、グループで「私のID」と送ると返信されます。
U から始まる文字列がuserIdです。
5

Vercel でインターネット上に公開する
(デプロイ=コードをWeb上で動かすこと)

1

コードフォルダ内でターミナル(Macはターミナル.app、Windowsはコマンドプロンプト)を開き、以下を実行します。

npx vercel --prod

初回は「vercel をインストールしますか?」と聞かれるので y を押してください。

2

質問が表示されたら以下のように答えます。

質問答え方
Set up and deploy?y
Which scope?自分のアカウントを選択してEnter
Link to existing project?n
Project name?好きな名前を入力してEnter
Directory?そのままEnter
3

デプロイが完了すると https://xxxx.vercel.app というURLが表示されます。このURLをメモしておきます。

4

認証情報(パスワードや鍵)をVercelに登録します。以下を1行ずつ実行し、値を貼り付けていきます。

npx vercel env add LINE_CHANNEL_ACCESS_TOKEN production
npx vercel env add LINE_CHANNEL_SECRET production
npx vercel env add SUPABASE_URL production
npx vercel env add SUPABASE_SERVICE_ROLE_KEY production
npx vercel env add CRON_SECRET production
npx vercel env add BOT_TYPE production
npx vercel env add ADMIN_USER_ID production
npx vercel env add ALLOWED_USER_IDS production
「Make it sensitive?」と聞かれたら y を推奨します。
「Would you like to upgrade?」と聞かれたら n を押してください。
5

登録した認証情報を反映させるため、もう一度公開します。

npx vercel --prod
6

LINEとコードをつなぐ
(Webhook=LINEのメッセージをコードに届ける設定)

1

LINE Developersに戻り、チャンネルの「Messaging API設定」を開きます。

2

Webhook設定」セクションの「編集」を押し、以下のURLを入力します。

https://(STEP 5-3 のURL)/api/webhook

例: https://my-bot.vercel.app/api/webhook

3

検証」ボタンを押して「Success」と表示されればOKです。

Webhookの利用」トグルをON(緑色)にします。

7

グループに招待する

1

LINE Developersの同じページにQRコードがあります。スマホのLINEで読み取って友達追加します。

2

LINEアプリで対象のグループを開き、右上メニュー→「メンバー招待」からbotを追加します。

3

botが参加するとSupabaseに自動登録されます。グループ名を変更したい場合はSupabaseの「group_info」テーブルで name の値を書き換えてください。

グループに入れた後、グループで 挨拶して と送ると自己紹介が届きます。
8

毎朝配信の時間・設定

初期設定は毎朝9時です。そのまま使う場合はこのステップは読み飛ばしてOKです。

配信のオン・オフや曜日指定は、グループ内からいつでもLINEで変更できます。

朝配信オフ毎朝の配信を止める
朝配信オン毎日配信に戻す
朝配信 毎週月曜月曜だけ配信(複数可:毎週月水金)
朝配信設定確認現在の設定を確認
配信時間の変更(9時以外にしたい場合)は、カスタマイズ相談をご利用ください。

9

基本的な使い方

📋 タスク管理

+タスク名→担当者タスクを追加(担当者は省略可)
追加 名前 担当 担当者名自然文でタスクを追加
?タスク一覧を表示
O11番のタスクを完了(O1,2,3 で複数同時可)
削除11番のタスクを削除
取消直前に追加したタスクを取り消し
E1 新内容→担当者1番のタスクを編集

📅 配信予約

配信5/29 メッセージ5月29日に1回だけ配信
配信5/29 前日あり メッセージ前日リマインドつき配信
配信 毎月10日 メッセージ毎月10日に繰り返し配信
配信 毎週火曜 メッセージ毎週火曜に繰り返し配信
配信一覧予約中の配信をすべて表示
配信削除 5/291回きり配信を削除
配信削除 毎月10日繰り返し配信を削除
個別チャットから複数グループに配信する場合:
個別チャットからコマンドを送ると、同じ BOT_TYPE の全グループに届きます。
特定のグループだけに送りたいときは 配信 @グループ名 5/29 メッセージ のように @グループ名 を付けます。

10

つまずきやすいポイント

LINEとの接続確認で「Success」が出ない
① Vercelへの公開が完全に完了しているか確認する(公開中は失敗します)
② URLのスペルミスがないか確認する(/api/webhook の末尾スラッシュは不要)
③ Vercelの認証情報に LINE_CHANNEL_SECRET が正しく入っているか確認する
グループに入れたのにbotがすぐ退出する
LINE Developersで「Allow bot to join group chats」がOFFになっています。
Messaging API設定タブでONに変更してから、もう一度グループに招待してください。
毎朝の配信が届かない日がある
Vercelは公開(デプロイ)するたびに自動タイマーがリセットされます。
当日に公開した場合、その日の自動配信が届かないことがあります。
手動で届けたいときは以下のコマンドを実行してください。
curl -X GET "https://(VercelのURL)/api/cron" \
  -H "Authorization: Bearer (CRON_SECRET)"
「already exists」エラーが出てVercelに認証情報を追加できない
フォルダ内の .vercel フォルダを削除してから npx vercel --yes で新規タスクとして登録し直してください。
iOSで「配信5/29」と打つとうまく認識されない
iOSの日本語キーボードは全角数字・全角スラッシュを入力することがあります。
このキットはそれらを自動で変換して対応しています。もし認識されない場合は半角で入力してみてください。