通知の送信
notifyまたはfullスコープの API キー- 通知を送るアプリの App ID
全購読者への送信
Section titled “全購読者への送信”アプリの全アクティブ購読者に通知を送ります。
curl -X POST https://todoke-api.naoto24kawa.workers.dev/api/v1/notify \ -H "Authorization: Bearer pk_notify_key" \ -H "Content-Type: application/json" \ -d '{ "app_id": "your-app-id", "title": "新着情報", "body": "アップデートがあります", "url": "https://yourapp.com/news", "icon": "https://yourapp.com/icon.png" }'import { TodokeClient } from "@todoke/sdk";
const client = new TodokeClient({ appId: "your-app-id", apiKey: "pk_notify_key",});
await client.notify({ title: "新着情報", body: "アップデートがあります", url: "https://yourapp.com/news", icon: "https://yourapp.com/icon.png",});await fetch("https://todoke-api.naoto24kawa.workers.dev/api/v1/notify", { method: "POST", headers: { "Authorization": "Bearer pk_notify_key", "Content-Type": "application/json", }, body: JSON.stringify({ app_id: "your-app-id", title: "新着情報", body: "アップデートがあります", url: "https://yourapp.com/news", }),});特定ユーザーへの送信
Section titled “特定ユーザーへの送信”endpoint フィールドを指定すると、その購読者のみに送信できます。
curl -X POST https://todoke-api.naoto24kawa.workers.dev/api/v1/notify \ -H "Authorization: Bearer pk_notify_key" \ -H "Content-Type: application/json" \ -d '{ "app_id": "your-app-id", "title": "あなた宛のメッセージ", "body": "個別通知です", "endpoint": "https://fcm.googleapis.com/fcm/send/..." }'リクエストパラメータ
Section titled “リクエストパラメータ”| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
app_id | string | ✅ | アプリ ID |
title | string | ✅ | 通知タイトル |
body | string | ✅ | 通知本文 |
url | string | — | クリック時の遷移先 URL |
icon | string | — | 通知アイコン URL |
badge | string | — | バッジアイコン URL |
endpoint | string | — | 指定時はこの購読者のみに送信 |
送信の仕組み
Section titled “送信の仕組み”REST API → Cloudflare Queues → Queue Consumer Worker → ブラウザへ Push通知はリクエスト受信後すぐに Queue に enqueue されます。Consumer Worker が自動起動して非同期に送信するため、大量の購読者がいてもタイムアウトしません。