コンテンツにスキップ

通知の送信

  • notify または full スコープの API キー
  • 通知を送るアプリの App ID

アプリの全アクティブ購読者に通知を送ります。

Terminal window
curl -X POST https://api.todoke.dev/api/v1/notify \
-H "Authorization: Bearer pk_notify_key" \
-H "Content-Type: application/json" \
-d '{
"title": "新着情報",
"body": "アップデートがあります",
"url": "https://yourapp.com/news",
"icon": "https://yourapp.com/icon.png"
}'

endpoint フィールドを指定すると、その購読者のみに送信できます。

Terminal window
curl -X POST https://api.todoke.dev/api/v1/notify \
-H "Authorization: Bearer pk_notify_key" \
-H "Content-Type: application/json" \
-d '{
"title": "あなた宛のメッセージ",
"body": "個別通知です",
"endpoint": "https://fcm.googleapis.com/fcm/send/..."
}'

バッチ送信(複数エンドポイントへの一括送信)

Section titled “バッチ送信(複数エンドポイントへの一括送信)”

POST /api/v1/notify/batch を使うと、同じ内容の通知を複数の endpoint へ一度にまとめて送信できます。

Terminal window
curl -X POST https://api.todoke.dev/api/v1/notify/batch \
-H "Authorization: Bearer pk_notify_key" \
-H "Content-Type: application/json" \
-d '{
"endpoints": ["https://fcm.googleapis.com/fcm/send/aaa", "https://fcm.googleapis.com/fcm/send/bbb"],
"payload": { "title": "新着情報", "body": "アップデートがあります", "url": "https://yourapp.com/news" }
}'
# → 202 { "queued": 2 }
フィールド必須説明
endpointsstring[]送信先 endpoint の一覧。最大 100 件(超過時は 400 TOO_MANY_ENDPOINTS
payload.titlestring通知タイトル
payload.bodystring通知本文
payload.urlstringクリック時の遷移先 URL(https:// のみ)
フィールド必須説明
titlestring通知タイトル
bodystring通知本文
urlstringクリック時の遷移先 URL
iconstring通知アイコン URL
badgestringバッジアイコン URL
endpointstring指定時はこの購読者のみに送信

titlebody は必須です。url / icon / badgehttps:// の URL のみ許可され、http:// を指定すると 400 INVALID_URL が返ります。

  • ペイロードサイズ: title / body / url / icon / badge の合計が 3,072 バイトまで(超過時は 413 PAYLOAD_TOO_LARGE
  • 月間送信数: Free プランは 30,000 通まで(超過時は 429 MONTHLY_LIMIT_EXCEEDEDupgrade_url 付き)
  • URL 形式: url / icon / badgehttps:// のみ(400 INVALID_URL

エラーコードの全一覧は エラーコード・制限値 を参照してください。

REST API → Cloudflare Queues → Queue Consumer Worker → ブラウザへ Push

通知はリクエスト受信後すぐに Queue に enqueue されます。Consumer Worker が自動起動して非同期に送信するため、大量の購読者がいてもタイムアウトしません。