L Harnessの入れ方:Cloudflare・LINE Developersの準備から最初の配信まで

公開 書いた人 大林 諒

L Harnessは、LINE公式アカウントのステップ配信・タグ・フォーム・リマインダを、自分のCloudflareアカウントの上で動かすオープンソースのツールです(MITライセンス、ソフトウェアの利用料は0円)。この記事では、サンプル料理教室の公式アカウントにL Harnessを入れて、友だちが管理画面に入ってくるのを確かめ、最初の配信をテスト送信するところまでを通します。手順はGitHub本家の2026年10月27日時点の公開版(v0.25.0)と、セットアップ用のコマンド npx create-line-harness に合わせています。前提は、パソコンでターミナル(Macの「ターミナル」、Windowsの「PowerShell」)にコマンドを貼り付けられることと、LINE公式アカウントの管理者権限があることです。

この記事の内容
  1. 先に決めること
  2. 用意するもの
  3. LINE側を準備する
  4. セットアップ用のコマンドで入れる
  5. 完了画面の指示どおりLINE側を設定する
  6. 管理画面に入って、友だちが入ってくるのを確かめる
  7. 最初の配信をテストで送る
  8. 既に使っている公式アカウントに入れるとき
  9. アップデートとバックアップ
  10. 応用
  11. できないことと、その代わり
  12. よく詰まるところ
  13. 次にやること

先に決めること

ここを決めずに始めると、後から変えられない設定を間違えてやり直しになります。

  • 新しい公式アカウントに入れるか、今使っている公式アカウントに入れるか。L Harnessは公式アカウントのWebhookを受け取って動きます。今Lステップや自作の仕組みがWebhookを使っているなら、付け替えた時点でそちらは止まります。既存のアカウントに入れる場合は、この記事の「既に使っている公式アカウントに入れるとき」を先に読んでください
  • プロバイダーをどれにするか。Messaging APIを有効にするときに選ぶプロバイダーは後から変更できません。LINEログインのチャネルも同じプロバイダーに作る必要があります。サンプル料理教室では「サンプル料理教室」という名前のプロバイダーを教室の名義で作りました。制作会社や運用代行の会社が管理するプロバイダーの下に作るのは避けます
  • Cloudflareのアカウントを誰の名義にするか。友だちの名前やメッセージの中身はこのアカウントのデータベースに入ります。担当者の個人メールではなく、教室で共有しているメールアドレスで作ります
  • 支払い情報を登録できるか。セットアップの最初に、画像を置くためのR2(Cloudflareのストレージ)を有効にするよう求められます。セットアップ用のコマンドの案内では、R2の有効化にクレジットカードなどの支払い情報の登録が要ります。R2は月10GBまで無料枠に入ります
  • 月に何通送るか。L Harnessから送る配信・ステップ配信・リマインダ・テスト送信は、Messaging APIのプッシュやマルチキャストとして送られ、料金プランの通数に数えられます。無料のコミュニケーションプランは月200通までで、超えると送れません(2026年10月時点)
  • 誰がアップデートを担当するか。更新もバックアップも自分たちでやるので、ターミナルを開ける人を1人決めておきます

用意するもの

GitHub本家のREADMEとセットアップ用のコマンドが求めるものは次のとおりです。料金は2026年10月時点です。

用意するもの何に使うか費用備考
CloudflareのアカウントWorker(L Harness本体)・D1(データベース)・Pages(管理画面)・R2(画像)を置く無料枠で開始できるセットアップ用コマンドの案内では、R2の有効化に支払い情報の登録が要る
LINE公式アカウント友だちとのやり取りそのものプランによる管理者権限のあるLINEアカウントで操作する
Messaging APIのチャネルメッセージの送受信無料LINE Official Account Managerから有効にする
LINEログインのチャネル友だち追加のときに本人を特定する・LIFFを載せる無料Messaging APIと同じプロバイダーに作る
LIFFアプリフォームや友だち追加の画面をLINEの中で開く無料LINEログインのチャネルに追加する
Node.js 22以上セットアップ用のコマンドを動かす無料node -v で確かめる
pnpm依存するプログラムを入れる無料npm install -g pnpm で入る
gitGitHubからL Harnessを取ってくる無料git --version で確かめる

Cloudflareの無料枠は、Workerへのリクエストが1日10万件、D1の読み取りが1日500万行、書き込みが1日10万行、保存容量が合計5GB、R2が月10GBです(2026年10月時点)。D1の無料枠は上限に達するとその日は問い合わせがエラーになり、超過分を払って動き続けるわけではありません。日次の上限は日本時間の朝9時(UTCの0時)に戻ります。上限を気にせず動かしたいときはWorkers Paid(アカウントあたり月5ドルから)に切り替えます。

セットアップが終わると、次のものができます。

どこにできるもの名前の例
CloudflareWorker(API・Webhookの受け口・LIFFの画面)https://line-harness.サブドメイン.workers.dev
CloudflareD1データベースline-harness
CloudflareR2バケットline-harness-images
CloudflarePages(管理画面)https://line-harness-admin-xxxxxxxx.pages.dev
パソコンL Harnessの一式と設定ファイルホームフォルダの .line-harness

LINE側を準備する

セットアップ用のコマンドは途中でLINEのチャネルIDやトークンを順に聞いてきます。先にLINE側を揃えておくと、ターミナルの前で待たずに済みます。

Messaging APIを有効にする

2024年9月4日から、LINE DevelopersコンソールでMessaging APIのチャネルを直接作ることはできなくなりました。LINE Official Account Manager(管理画面)から有効にします。この操作はパソコンのブラウザ版でしかできず、スマホのLINE公式アカウントアプリからはできません。

  1. LINE Official Account Managerにログインし、サンプル料理教室のアカウントを開く
  2. 右上の「設定」を押す
  3. 左のメニューで「Messaging API」を押す
  4. 「Messaging APIを利用する」を押す
  5. LINE Developersを初めて使うアカウントでは開発者情報(名前とメールアドレス)の登録画面が出るので、登録する
  6. プロバイダーを選ぶか新しく作り、同意する
  7. 確認画面で「OK」を押す
  8. 「Channel ID」と「Channel secret」を控える(L Harnessのセットアップ用コマンドの案内では、どちらも「設定」→「Messaging API」の同じ画面に表示される)
LINE Official Account Managerの「設定」→「Messaging API」で、Channel IDとChannel secretが表示された状態
LINE Official Account Managerの「設定」→「Messaging API」で、Channel IDとChannel secretが表示された状態

Channel secretはパスワードと同じ扱いで、チャットやメールに貼りません。

チャネルアクセストークン(長期)を発行する

  1. LINE Developersコンソールに、LINE Official Account Managerと同じLINEアカウントでログインする
  2. さきほど選んだプロバイダーを押す
  3. サンプル料理教室のMessaging APIチャネルを押す
  4. 「Messaging API設定」タブを開く
  5. 「チャネルアクセストークン(長期)」の「発行」を押す
  6. 表示されたトークンを控える

長期のチャネルアクセストークンは1つのチャネルに1つしか持てず、再発行すると今のトークンは無効になります(再発行のときに、今のトークンの有効期間を最大24時間まで延ばすこともできます)。すでに別のツールが長期トークンを使っているチャネルでここを押すと、そのツールからの送信が止まります。

Messaging API設定タブの「チャネルアクセストークン(長期)」の発行ボタン
Messaging API設定タブの「チャネルアクセストークン(長期)」の発行ボタン

LINEログインのチャネルを作る

  1. LINE Developersコンソールで、Messaging APIと同じプロバイダーを開く
  2. 「新規チャネル作成」を押し、「LINEログイン」を選ぶ
  3. サービスを提供する地域は「日本」、チャネル名は「サンプル料理教室 ログイン」のように入れる(「LINE」を含む名前は使えない)
  4. 「チャネル説明」を入れ、「アプリタイプ」で「ウェブアプリ」を選ぶ(「2要素認証の必須化」は初期値のオンのまま)
  5. メールアドレスを入れ、「LINE開発者契約に同意します。」にチェックを入れて「作成」を押す
  6. 「チャネル基本設定」タブの基本情報の先頭に出る「チャネルID」を控える。タブは「チャネル基本設定」「LINEログイン設定」「LIFF」「権限設定」の4つで、作った直後のステータスは「開発中」
LINEログインチャネルの「チャネル基本設定」タブ。チャネルIDの位置
LINEログインチャネルの「チャネル基本設定」タブ。チャネルIDの位置

LIFFアプリを追加する

README には「LIFF アプリの自動作成」と書かれていますが、2026年10月27日時点のセットアップ用のコマンドは、LIFF IDを入力するよう求めてきます。先に作っておきます。

  1. LINEログインのチャネルで「LIFF」タブを開き、「追加」を押して「LIFFアプリを追加」の画面を開く。LIFFタブには、今後LINEミニアプリに統合する予定で新しく作るならミニアプリを勧める、という案内が出ている
  2. LIFFアプリ名に「サンプル料理教室」と入れる
  3. サイズは「Full」を選ぶ
  4. エンドポイントURLは仮に https://example.com と入れる(Workerができてから差し替える)
  5. Scopeで openid、profile、chat_message.write にチェックを入れる。chat_message.write を入れると確認が出て、ブラウザの最小化機能が使えなくなると案内される
  6. 友だち追加オプションは「On (Normal)」「On (Aggressive)」「Off」のうち「On (Aggressive)」を選ぶ
  7. 「追加」を押し、発行されたLIFF ID(2000000000-AbCdEfGh のような形)を控える
LIFFの追加画面。サイズFull、Scope3つ、友だち追加オプションOn (Aggressive)を選んだ状態
LIFFの追加画面。サイズFull、Scope3つ、友だち追加オプションOn (Aggressive)を選んだ状態

ここまでで控えたのは、Messaging APIのChannel ID・Channel secret・チャネルアクセストークン(長期)、LINEログインのチャネルID、LIFF IDの5つです。

セットアップ用のコマンドで入れる

Cloudflareのアカウントを作ってR2を有効にする

  1. Cloudflareのサイトでアカウントを作り、メールアドレスの確認を済ませる
  2. ダッシュボードの左のメニューで「Storage & Databases」→「R2 Object Storage」→「Overview」を開く
  3. 画面の案内に沿って支払い情報を登録し、R2を有効にする
CloudflareダッシュボードのR2 Object Storageの概要画面
CloudflareダッシュボードのR2 Object Storageの概要画面

コマンドを実行する

ターミナルを開き、Node.jsとpnpmが入っているかを確かめてから実行します。

node -v
pnpm -v
npx create-line-harness

node -v が v22 より小さければ、Node.jsを入れ直してから進めます。実行すると、L Harnessの一式がホームフォルダの .line-harness に取り込まれ、次の順で聞かれます。

  1. Cloudflareへのログイン。ブラウザが開くので、さきほどのアカウントでログインして許可する
  2. Cloudflareのアカウントが複数ある場合は、どれを使うかを選ぶ
  3. R2を有効にしたかの確認。済んでいれば Enter を押す
  4. プロジェクト名。そのまま Enter で line-harness になる(英小文字・数字・ハイフンのみ)
  5. Messaging APIのChannel ID、Channel secret、チャネルアクセストークン(長期)
  6. LINEログインのチャネルID
  7. LIFF ID
  8. このあと、D1の作成、R2のバケット作成、Workerと管理画面のデプロイ、シークレットの登録が自動で進む(数分かかる)
  9. 最後に「MCP 設定を .mcp.json に追加しますか?(Claude Code / Cursor 用)」と聞かれる。Claude CodeなどのAIツールから操作しない場合は No でよい

終わると「セットアップ完了!」の枠が出て、このあとLINE側でやる設定と、Webhook URL・友だち追加URL・管理画面のURL・APIキーが表示されます。APIキーは管理画面へのログインに使い、この画面のあとは再表示できません。表示された内容はパスワード管理ツールに保存します。

途中でネットワークが切れたり画面を閉じたりしても、同じ npx create-line-harness をもう一度実行すれば「前回の途中から再開します」と出て続きから進みます。やり直そうとして .line-harness のフォルダを消すのはやめてください。入力済みの値とD1の情報がそこに入っています。

完了画面の指示どおりLINE側を設定する

応答設定を変える

L Harnessが受け答えを受け持つので、公式アカウント側の自動の受け答えは止めます。L Harnessの完了画面の指示は次のとおりです。Webhookのオン・オフはLINE Developersコンソールの「Webhookの利用」と同じものなので、応答設定の画面に項目が見当たらなければ次の手順の「Webhookの利用」で切り替えます。

項目設定止めないと起きること
チャットオフ問い合わせへの返信がLINE Official Account ManagerとL Harnessの2か所に分かれる
あいさつメッセージオフ友だち追加のあいさつが公式アカウントとL Harnessから2通届く
WebhookオンL Harnessに何も届かない
応答メッセージオフキーワードへの返事が2通返る
  1. LINE Official Account Managerで「設定」→「応答設定」を開く
  2. 上の表のとおりに切り替える
LINE Official Account Managerの「設定」→「応答設定」で、Webhookだけがオンになった状態
LINE Official Account Managerの「設定」→「応答設定」で、Webhookだけがオンになった状態

あいさつメッセージの代わりは、L Harnessの管理画面の「シナリオ配信」で、友だち追加をきっかけに始まるシナリオとして作ります(セットアップ直後から「ウェルカムシナリオ」が1つ入っています)。問い合わせへの返信は管理画面の「個別チャット」から送ります。

Webhook URLを貼って検証する

  1. LINE DevelopersコンソールでMessaging APIのチャネルを開き、「Messaging API設定」タブを開く
  2. 「Webhook URL」の「編集」を押し、完了画面に出た https://line-harness.サブドメイン.workers.dev/webhook を貼って「更新」を押す
  3. 「検証」を押し、「成功」と出るのを確かめる
  4. 「Webhookの利用」をオンにする
Messaging API設定タブで、Webhook URLの検証が「成功」になった状態
Messaging API設定タブで、Webhook URLの検証が「成功」になった状態

LINEログインのチャネルを仕上げる

  1. LINEログインのチャネルの「チャネル基本設定」タブで、「リンクされたLINE公式アカウント」の「編集」を押し、サンプル料理教室のアカウントを選んで更新する
  2. 「LINEログイン設定」タブを開き、「ウェブアプリでLINEログインを利用する」をオンにする
  3. 「コールバックURL」の「編集」を押し、https://line-harness.サブドメイン.workers.dev/auth/callback を貼って「更新」を押す
  4. 「LIFF」タブで、さきほど作ったLIFFアプリのエンドポイントURLを、完了画面に出た https://line-harness.サブドメイン.workers.dev?liffId=LIFF ID に差し替える(?liffId= まで含める)
  5. ページ上部のステータス「開発中」を押し、「公開済み」に切り替える

「開発中」のままだと、LINEログインを使えるのはチャネルのAdminやTesterの権限を持つ人だけです。スタッフのスマホでは動くのに、お客さんが友だち追加の画面で止まります。「公開済み」にすると「開発中」には戻せません。

管理画面に入って、友だちが入ってくるのを確かめる

管理画面にログインする

  1. 完了画面に出た管理画面のURL(https://line-harness-admin-xxxxxxxx.pages.dev)をChromeで開く
  2. 「API Key」の欄にAPIキーを貼って「ログイン」を押す。メールアドレスとパスワードではなく、APIキーだけで入る
L Harness管理画面のログイン画面
L Harness管理画面のログイン画面

管理画面(pages.dev)とWorker(workers.dev)は別のドメインなので、ログインのCookieはサードパーティCookieの扱いになり、本家の説明ではSafariがこれを止めます。Safariで入れないときはChromeで開くか、応用の「独自ドメインで管理画面を開く」で同じドメインにまとめます。

友だち追加して登録を確かめる

友だち追加は、公式アカウントのQRコードではなく、完了画面に出た友だち追加URLを使います。このURLを通すとLINEログインで本人が特定され、どこから来た友だちかも記録されます。

  1. スタッフのスマホで https://line-harness.サブドメイン.workers.dev/auth/line?ref=setup を開く
  2. LINEログインの同意画面で「許可する」を押す
  3. 続けて出る友だち追加の確認で、サンプル料理教室を友だち追加する
  4. 管理画面の「友だち管理」を開き、スタッフの名前が一覧に出ているのを確かめる
  5. パソコンのブラウザでも同じURLを開き、QRコードの読み取りから友だち追加まで通るかを確かめる
L Harness管理画面の「友だち管理」に、テストで追加したスタッフが1件表示された状態
L Harness管理画面の「友だち管理」に、テストで追加したスタッフが1件表示された状態

ref=setup はURLを貼った場所の名前です。チラシ用は ref=flyer のように変えて配ると、友だちごとに流入元が残ります。

件数はAPIでも見られます。

curl -s -H "Authorization: Bearer YOUR_API_KEY" \
  https://line-harness.YOUR_SUBDOMAIN.workers.dev/api/friends/count

最初の配信をテストで送る

いきなり全員に送らず、まずスタッフにだけテスト送信します。テスト送信もプッシュメッセージなので、1人に送るごとに1通として数えられます。

  1. 管理画面の「LINEアカウント」を開く
  2. サンプル料理教室の欄の「テスト送信先」で、「友だちを検索して追加…」にスタッフの名前を入れて追加する
  3. 「一斉配信」を開き、「新規配信」を押す
  4. 配信タイトルに「11月の体験レッスン日程(テスト)」と入れる
  5. 配信対象は「タグで絞り込み」を選び、まだ誰にも付いていないタグを指定しておく(誤って本番の送信を押しても誰にも届かない)
  6. メッセージに本文を入れて「作成」を押す
  7. 作った配信を開き、「テスト送信」の「テスト送信する」を押す
  8. スタッフのLINEに、先頭に「【テスト配信】」が付いたメッセージが届くのを確かめる

本番の送信では「配信を送信しますか?」の確認が出て、「送信後は取り消せません。」と表示されます。配信対象の「全員」は、L Harnessに登録されている友だちだけでなく、公式アカウントの友だち全員に届く送り方(LINEのブロードキャスト)を使います。通数の見込みは公式アカウント側の友だち数で考えます。

既に使っている公式アカウントに入れるとき

Webhook URLを入れる欄はチャネルに1つしかありません。L Harnessに切り替えた瞬間から、今までWebhookを受けていた仕組みには何も届かなくなります。切り替える前に、今動いているものを全部書き出します。

今使っているもの切り替えると起きること先にやること
Lステップなど他の拡張ツール受信・タグ付け・ステップ配信が止まる。ツール側の予約配信は送られ続けることがあるツール側の予約配信を止め、シナリオとタグをL Harnessで作り直してから切り替える
自作のbotや予約システムのLINE連携受け取りが止まる。長期トークンを再発行するとそちらの送信も止まる長期トークンは再発行せず今のものを使うか、両方を同じ日に差し替える
応答メッセージ・あいさつメッセージ完了画面の指示どおりオフにすると返事が出なくなる同じ文面をL Harnessの「自動返信ルール」と「友だち追加時設定」に先に作る
チャット(管理画面・アプリ)オフにすると、スタッフはL Harnessの「個別チャット」で返すことになる返信の担当と見る画面をスタッフに伝えてから切り替える
今いる友だちL Harnessには、メッセージを送ってくるかボタンを押すまで出てこない認証済アカウントなら「LINEアカウント」の「既存友だちのワンタイム移行」を使う

既存の友だちをまとめて取り込む移行は、LINEの「友だちのユーザーIDの一覧を取得する」APIを使うので、認証済アカウントかプレミアムアカウントでしか使えません。未認証のアカウントでは「現在のLINEアカウントでは利用できません。」と表示されます。その場合は、既存の友だちが次にメッセージを送ってきたときやリッチメニューを押したときに、順に友だち管理へ入ってきます。

実際に運用していると、LINE Official Account Managerのチャットや一斉配信、スマホのアプリから送ったメッセージはL Harnessの画面に出てきません。送ったものが見えないと、誰に何を送ったかが2か所に分かれます。切り替えたあとは、配信も個別の返信もL Harnessから送る運用に揃えます。

切り替えは次の順でやります。

  1. 今のWebhook URLを控える(戻すときに使う)
  2. 他のツールの予約配信とステップ配信を止める
  3. 応答設定とWebhook URLを、この記事の手順どおりに切り替える
  4. スタッフのスマホでメッセージを送り、L Harnessの「個別チャット」に届くのを確かめる
  5. 問題があれば、控えたWebhook URLに戻す

今のWebhook URLは、LINE Official Account Managerの画面では入力欄が空に見えることがあります。本番のアカウントで、画面では空なのに実際は別のサーバーへ向いていた、ということが起きました。確かめるときはAPIで見ます。

curl -s -H "Authorization: Bearer YOUR_CHANNEL_ACCESS_TOKEN" \
  https://api.line.me/v2/bot/channel/webhook/endpoint

返ってくる endpoint が今のWebhook URLで、active が true ならWebhookが使われています。

アップデートとバックアップ

L Harnessは更新が速く、2026年9月から10月だけでも何度もリリースが出ています。更新の前には必ずD1のバックアップを取ります。

npx wrangler d1 export line-harness --remote --output line-harness-before-update.sql
npx create-line-harness@latest update

1行目でデータベースをまるごとSQLファイルに書き出し、2行目で更新します。line-harness はセットアップで決めたプロジェクト名です。更新のコマンドは、変更点のURLを出したうえで「v0.24.3 → v0.25.0 にアップデートしますか?」のように確認してきます。書き出しの間は他の処理が待たされるので、配信の予約が無い時間にやります。

更新したあとは、管理画面のバージョン表示を見て、使っているフォームや予約の画面を1つずつ開いて確かめます。自動で更新できるのは、本家のリリースと同じ構成のまま使っている場合だけです。コードを書き換えた場合や自分のGitHub Actionsでデプロイしている場合は、本家の「手動アップデートガイド」の手順で更新します。

書き出しとは別に、D1には特定の時点へ戻すTime Travelがあり、無料プランでは7日前まで、Workers Paidでは30日前まで分単位で戻せます。操作を誤ってデータを消したときはこちらを使います。

npx wrangler d1 time-travel info line-harness
npx wrangler d1 time-travel restore line-harness --timestamp=2026-10-27T09:00:00+09:00

restoreはデータベースを上書きします。実行すると戻す前の目印が表示されるので、それを控えてから進めます。

応用

独自ドメインで管理画面を開く

管理画面を admin.example.co.jp、Workerを api.example.co.jp のように同じドメインの下にまとめると、ログインのCookieがサードパーティCookieにならず、Safariでも止まりません。本家の管理画面認証の説明では、こちらの形が推奨されています。WorkerはCloudflareのダッシュボードの「Custom Domains」でドメインを足し、Workerの設定の ADMIN_ORIGIN を新しい管理画面のURLに合わせます。

公式アカウントを増やす

L Harnessは1つのWorkerで複数の公式アカウントを扱えます。教室を2つ目に増やすときは、管理画面の「LINEアカウント」から追加します。ただし本家のスタッフ管理にあるのは操作の権限(owner・admin・staff)の分け方で、スタッフごとに見られる公式アカウントを分ける設定はありません。別の会社の公式アカウントを同じWorkerに入れると、互いのデータが見える状態になります。取引先ごとに分けるときは、Cloudflareのアカウントごと分けてセットアップします。

できないことと、その代わり

できないこと代わりの手
スマホだけでセットアップするパソコンでターミナルを使う。手を動かす人がいない場合は、開発元が基盤運用を提供する公式のマネージド版L Harness Cloud(OSSとは別の事業体)か、月額の拡張ツールを選ぶ
他の拡張ツールと同じ公式アカウントで同時に使うWebhookは1本なのでどちらか1つにする。試すだけなら新しい公式アカウントを作って入れる
LINE Official Account Managerから送ったメッセージをL Harnessで見る送信をL Harnessに揃える
未認証アカウントの既存の友だちを一度に取り込む友だちが次に話しかけてくるのを待つか、リッチメニューを押してもらう配信を送る
障害のときに誰かが直してくれる自分で直す。更新とバックアップを担当者の仕事に入れる

よく詰まるところ

症状原因直し方
Webhook URLの「検証」が失敗するURLの末尾に /webhook が無い、またはWorkerのデプロイが終わっていない管理画面の「LINEアカウント」に出る「LINE Developers Console に登録すべき URL」からコピーして貼り直す
友だち追加しても「友だち管理」に出てこない「Webhookの利用」がオフ、または別のチャネルに貼った上のcurlでWebhookの endpoint と active を確かめる
パソコンで友だち追加URLを開くと「Invalid redirect_uri」LINEログインのチャネルにコールバックURLが無い「LINEログイン設定」タブでウェブアプリをオンにし、「コールバックURL」に /auth/callback のURLを貼る
スタッフは入れるのに、お客さんが友だち追加の画面で止まるLINEログインのチャネルが「開発中」のまま「公開済み」に切り替える
フォームや友だち追加の画面が開かないLIFFのエンドポイントURLが https://example.com のまま、または ?liffId= が抜けている完了画面に出たURLをそのまま貼り直す
友だち追加のあいさつが2通届くLINE Official Account Managerのあいさつメッセージがオンのまま「応答設定」であいさつメッセージをオフにする
Safariだけ管理画面にログインできないサードパーティCookieが止められているChromeで開くか、独自ドメインで管理画面とWorkerを同じドメインにまとめる
セットアップが途中で止まったネットワークの切断やCloudflareの一時的なエラー同じ npx create-line-harness を実行し直す。途中から再開される
画像を使った配信やリッチメニューの画像が保存できないR2が有効になる前にセットアップを進めたR2を有効にしてから npx wrangler r2 bucket create line-harness-images でバケットを作る
ある日の朝まで配信もログインもエラーになるD1の無料枠の1日の上限に達した日本時間の朝9時に戻る。たびたび起きるならWorkers Paidに切り替える
手で複製した2つ目のWorkerに出したつもりが、1つ目に向いたL Harnessはビルドのときに出し先の設定を作るので、wrangler deploy --env が効かないビルドのときに CLOUDFLARE_ENV=環境名 を付ける。Cloudflareのトークンは出し先のアカウントだけに絞る(実際にこれで本番の上書きを免れた)

次にやること

L Harnessが動いたら、サンプル料理教室の体験レッスンの予約、入会案内のステップ配信、レッスン前日のリマインダを組みます。続きは「L Harnessで予約・フォーム・ステップ配信を組む:教室の例で一通り」です。Webhookとトークンの仕組みは「Messaging APIの始め方:チャネル・アクセストークン・Webhook」、L Harnessを入れずに問い合わせだけ残すなら「LINEの問い合わせをスプレッドシートに貯める:Webhookで1件ずつ記録する」、入れるかどうかをまだ決めていないなら「L Harnessとは:月額0円で使えるLINEの拡張ツール。Lステップとの違いと、かかる費用」を読んでください。

あわせて読む