コンテンツにスキップ

制限とエラー

このページには、API 全体で共有されるルールがまとめられています。必須フィールド、ライフサイクル動作、およびモデル固有のセマンティクスは、引き続き各 API ページに属します。

アイテム制限
リクエストボディサイズ最大32KB。
ゲートウェイで生成された ID32 個の小文字の 16 進文字。
Channel パスワード通常は 8 ~ 128 文字です。
op_id1 ~ 128 文字。文字、数字、_:-
images最大 32 の URL、それぞれ最大 2048 文字。
tags最大 32 個のタグ、それぞれ最大 64 文字、トリミングおよび重複排除。
metadataスカラー値のみ。キーは最大 64、値は最大 512。
attrsオブジェクトパッチ; null はキーを削除します。複雑な入れ子は避けてください。
ttlUnix ミリ秒のタイムスタンプ。プロバイダーの配信 TTL は約 28 日に制限されています。
不明なフィールドネイティブ Message、Event、Thing、および MCP ツールの引数は厳密です。不明なフィールドは 400 を返します。

成功:

{
"success": true,
"data": {
"accepted": true
},
"error": null,
"error_code": null
}

失敗:

{
"success": false,
"data": null,
"error": "human readable message",
"error_code": "machine_readable_code"
}

オートメーションでは、自然言語の error テキストよりも success および error_code を優先する必要があります。

success=true は、Gateway がリクエストを処理したことを意味します。 accepted=true はディスパッチに入ったことを意味します。

以下のことを保証するものではありません。

  • すべてのデバイスがオンラインになっています。
  • APNs または FCM に通知が表示されました。
  • リアルタイムで配信される Android プライベート トランスポート。
  • ユーザーは、通知権限、フォーカス モード、バッテリー ポリシーの影響を受けません。

accepted を、エンドデバイスの表示受信としてではなく、Gateway の受け入れおよび発送ステータスとして扱います。

一般的な HTTP ステータス コード

Section titled “一般的な HTTP ステータス コード”
ステータス意味典型的な理由何をすべきか
200Gateway がリクエストを処理しましたsuccess=true ですが、それでも accepted を確認してください返された ID と op_id を保存します。
400検証に失敗しました必須フィールドが欠落している、不明なフィールド、不正な形式JSON を API フィールド テーブルと比較します。
401Gateway 認証に失敗しましたプライベート Gateway は PUSHGO_TOKEN を使用します。 Bearer トークンが見つからないか間違っていますAuthorization: Bearer <token>を確認してください。
404ターゲットが見つかりませんChannel、Event、または Thing が存在しませんchannel_idevent_idthing_idを確認してください。
413リクエスト本文が大きすぎますJSON が 32KB を超えています画像 URL を使用します。メタデータまたは属性を削減します。
503派遣は完全には受け付けられていませんプロバイダー、プライベート トランスポート、キュー、またはダウンストリームが利用不可Gateway のログ、統計、キュー容量を検査します。

シナリオ別のトラブルシューティング

Section titled “シナリオ別のトラブルシューティング”
  • JSON が有効である必要があります。
  • event_id/event/create に、または thing_id/thing/create に送信しないでください。
  • 不明なフィールドを削除します。
  • severity は、criticalhighnormal、または low である必要があります。
  • attrs は、配列や深く入れ子になった構造ではなく、オブジェクト パッチである必要があります。
  • プライベート Gateway に PUSHGO_TOKEN があるかどうかを確認します。
  • ヘッダーは Authorization: Bearer <token> である必要があります。
  • チャネルパスワードとGatewayトークンを混同しないでください。
  • リバース プロキシが Authorization ヘッダーを削除しないようにします。

リクエストは成功しましたが、デバイスは通知しません

Section titled “リクエストは成功しましたが、デバイスは通知しません”
  • クライアントはチャンネルに登録する必要があります。
  • デバイスの通知許可が有効になっている必要があります。
  • Apple の配信は、APNs、フォーカス モード、システム設定の影響を受ける可能性があります。
  • Android クライアントは正しい /gateway/profile をフェッチできる必要があります。
  • プライベート トランスポート ポート、証明書、および外部アドレスに到達可能である必要があります。
  • Gateway ログにプロバイダーまたはプライベート ディスパッチ エラーが表示される場合があります。

専用送迎サービスは利用できません

Section titled “専用送迎サービスは利用できません”
  • PUSHGO_PRIVATE_TRANSPORTS を有効にする必要があります。
  • WSS は、HTTPS ドメイン経由で到達可能である必要があります。
  • QUIC UDP ポートがファイアウォールまたはプロキシによってブロックされている可能性があります。
  • Raw TCP は TLS または TLS オフロードを正しく処理する必要があります。
  • アドバタイズされたポートと実際のバインド ポートは、NAT またはポート マッピングの背後で異なる場合があります。
  • PUSHGO_MCP_ENABLED を有効にする必要があります。
  • PUSHGO_PUBLIC_BASE_URL は外部 HTTPS URL である必要があります。
  • リバース プロキシは、/.well-known/*/oauth/*、および /mcp を転送する必要があります。
  • DCR はクライアントの機能と一致する必要があります。
  • バインド ページ セッションは期限切れになる可能性があります。