まずはこちらからファイルをダウンロードしてください
ファイルをダウンロードする以下の3つのサービスの無料アカウントが必要です。すでに持っている場合はスキップしてください。
| サービス | 用途 | 料金 |
|---|---|---|
| LINE Developers developers.line.biz | 公式LINEのbotチャンネルを作成・管理する | 無料 |
| Supabase supabase.com | タスクや配信予約を保存する場所 | 無料枠あり |
| Vercel vercel.com | コードをインターネット上で動かす | 無料枠あり |
LINE Developersにログインし、「プロバイダー」を作成します(すでにある場合はスキップ)。
「チャンネルを作成」→「Messaging API」を選択します。
チャンネル名・説明を入力して作成します(名前はグループのメンバーに見えます)。
作成したチャンネルの「Messaging API設定」タブを開き、一番下の「チャネルアクセストークン(LINEにアクセスするための鍵)」→「発行」を押してコピーします。
→ 後でコードに貼り付けます。
「Basic settings」タブを開き、「Channel secret(なりすまし防止の合言葉)」をコピーします。
→ 後でコードに貼り付けます。
「Messaging API設定」タブで「Allow bot to join group chats」をONにします(グループに追加できるようになります)。
supabase.com にログインし、「New project」でタスクを作成します。
パスワードはメモしておいてください。リージョンは「Northeast Asia (Tokyo)」推奨。
「Project Settings」→「API」から以下の2つをコピーします。
「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() );
配布されたコードフォルダをPCの好きな場所に置きます。
.env.local.example をコピーして、ファイル名を .env.local に変更します。
.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)
U から始まる文字列がuserIdです。
コードフォルダ内でターミナル(Macはターミナル.app、Windowsはコマンドプロンプト)を開き、以下を実行します。
npx vercel --prod
初回は「vercel をインストールしますか?」と聞かれるので y を押してください。
質問が表示されたら以下のように答えます。
| 質問 | 答え方 |
|---|---|
| Set up and deploy? | y |
| Which scope? | 自分のアカウントを選択してEnter |
| Link to existing project? | n |
| Project name? | 好きな名前を入力してEnter |
| Directory? | そのままEnter |
デプロイが完了すると https://xxxx.vercel.app というURLが表示されます。このURLをメモしておきます。
認証情報(パスワードや鍵)を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
y を推奨します。n を押してください。登録した認証情報を反映させるため、もう一度公開します。
npx vercel --prod
LINE Developersに戻り、チャンネルの「Messaging API設定」を開きます。
「Webhook設定」セクションの「編集」を押し、以下のURLを入力します。
https://(STEP 5-3 のURL)/api/webhook
例: https://my-bot.vercel.app/api/webhook
「検証」ボタンを押して「Success」と表示されればOKです。
「Webhookの利用」トグルをON(緑色)にします。
LINE Developersの同じページにQRコードがあります。スマホのLINEで読み取って友達追加します。
LINEアプリで対象のグループを開き、右上メニュー→「メンバー招待」からbotを追加します。
botが参加するとSupabaseに自動登録されます。グループ名を変更したい場合はSupabaseの「group_info」テーブルで name の値を書き換えてください。
挨拶して と送ると自己紹介が届きます。初期設定は毎朝9時です。そのまま使う場合はこのステップは読み飛ばしてOKです。
配信のオン・オフや曜日指定は、グループ内からいつでもLINEで変更できます。
BOT_TYPE の全グループに届きます。配信 @グループ名 5/29 メッセージ のように @グループ名 を付けます。
/api/webhook の末尾スラッシュは不要)LINE_CHANNEL_SECRET が正しく入っているか確認する
curl -X GET "https://(VercelのURL)/api/cron" \ -H "Authorization: Bearer (CRON_SECRET)"
.vercel フォルダを削除してから npx vercel --yes で新規タスクとして登録し直してください。