コンテンツにスキップ

検索はプロダクションビルドでのみ利用可能です。 ローカルでテストするには、サイトをビルドしてプレビューしてください。

LINE通知

LINE 通知は LINE Bot SDK を使用して、店舗に紐付けられた LINE アカウントにメッセージを送信します。



Counter の通知設定画面から LINE アカウントを連携します。

Base RPC: lineCallback({ code, shopId, redirectUrl })
  1. LINE OAuth トークン交換
  2. LINE Profile API でプロフィール取得
  3. shop_line_account に保存

フィールド説明
shopId店舗 ID
lineUserIdLINE ユーザー ID
displayNameLINE 表示名
pictureUrlLINE プロフィール画像 URL
accessTokenLINE アクセストークン
channelIdLINE チャネル ID
isActive有効/無効

1店舗あたり最大 5つ の LINE アカウントを登録できます。


Bell の Queue Consumer が notification-queue からメッセージを受信し、LINE 送信を実行します。

line-sender.ts
const client = new messagingApi.MessagingApiClient({
channelAccessToken: account.accessToken
});
await client.pushMessage({
to: account.lineUserId,
messages: [
{
type: 'text',
text: `${title}\n\n${body}\n\n${url ?? ''}`
}
]
});

LINE アカウントごとにカテゴリの有効/無効を設定できます。

Bell RPC: updateShopLineCategories({ id, categories })

通知送信時に、対象アカウントのカテゴリ設定を確認し、無効なカテゴリの通知はスキップします。

エラー対応
401 Unauthorizedトークン期限切れ。再認証が必要
429 Rate Limitリトライ対象
400 Bad Requestメッセージフォーマットエラー

Base RPC: listLineAccounts({ shopId })
→ { accounts: ShopLineAccount[], limit: number }
Base RPC: deleteLineAccount({ shopId, id })
Bell RPC: sendShopTestNotification({
shopId,
channel: 'line',
targetId: accountId
})

┌──────────────────────────────────┐
│ LINE通知連携 │
├──────────────────────────────────┤
│ 🟢 田中太郎 │
│ カテゴリ: [✓ チャット] [✓ 配信] │
│ [友だち追加] [テスト送信] [解除] │
├──────────────────────────────────┤
│ 🟢 山田花子 │
│ カテゴリ: [✓ チャット] [ 配信] │
│ [友だち追加] [テスト送信] [解除] │
├──────────────────────────────────┤
│ [+ 別のアカウントを連携] (2/5) │
└──────────────────────────────────┘
  • プロフィール画像と表示名
  • チャネルごとのカテゴリトグル
  • 友だち追加リンク(LINE Bot への友だち登録)
  • テスト送信ボタン
  • 連携解除ボタン