Zum Inhalt springen

Grenzen und Fehler

Auf dieser Seite werden Regeln zusammengefasst, die von allen APIs gemeinsam genutzt werden. Erforderliche Felder, Lebenszyklusverhalten und modellspezifische Semantik gehören weiterhin zu jeder API-Seite.

ArtikelGrenze
Körpergröße anfragenMaximal 32 KB.
Vom Gateway generierte IDs32 hexadezimale Kleinbuchstaben.
Channel PasswortNormalerweise 8-128 Zeichen.
op_id1-128 Zeichen; Buchstaben, Ziffern, _, :, -.
imagesBis zu 32 URLs mit jeweils maximal 2048 Zeichen.
tagsBis zu 32 Tags mit jeweils maximal 64 Zeichen, gekürzt und dedupliziert.
metadataNur Skalarwerte; Schlüssel max. 64, Wert max. 512.
attrsObjektpatch; null entfernt einen Schlüssel; Vermeiden Sie komplexe Verschachtelungen.
ttlUnix-Millisekunden-Zeitstempel; Die TTL für die Zustellung durch den Anbieter ist auf etwa 28 Tage begrenzt.
Unbekannte FelderDie nativen Werkzeugargumente Message, Event, Thing und MCP sind streng; Unbekannte Felder geben 400 zurück.

Erfolg:

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

Fehler:

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

Die Automatisierung sollte success und error_code gegenüber natürlichsprachlichem error-Text bevorzugen.

success=true bedeutet, dass der Gateway die Anfrage verarbeitet hat. accepted=true bedeutet, dass es in den Versand gegangen ist.

Es wird nicht garantiert:

  • Jedes Gerät ist online.
  • APNs oder FCM hat eine Benachrichtigung angezeigt.
  • Android-Privattransport in Echtzeit bereitgestellt.
  • Der Benutzer ist von Benachrichtigungsberechtigungen, dem Fokusmodus oder der Batterierichtlinie nicht betroffen.

Behandeln Sie accepted als Gateway-Annahme- und Versandstatus, nicht als Empfangsbestätigung für das Endgerät.

StatusBedeutungTypischer GrundWas zu tun ist
200Gateway hat die Anfrage verarbeitetsuccess=true, aber überprüfen Sie trotzdem acceptedSpeichern Sie zurückgegebene IDs und op_id.
400Validierung fehlgeschlagenFehlendes erforderliches Feld, unbekanntes Feld, falsches FormatVergleichen Sie JSON mit der API-Feldtabelle.
401Gateway-Authentifizierung fehlgeschlagenPrivates Gateway verwendet PUSHGO_TOKEN; Bearer-Token fehlt oder ist falschÜberprüfen Sie Authorization: Bearer <token>.
404Ziel fehltChannel, Event oder Thing existiert nichtÜberprüfen Sie channel_id, event_id, thing_id.
413Anfragetext zu großJSON überschreitet 32 KBBild-URLs verwenden; Metadaten oder Attribute reduzieren.
503Versand nicht vollständig angenommenAnbieter, privater Transport, Warteschlange oder Downstream nicht verfügbarÜberprüfen Sie Gateway-Protokolle, Statistiken und Warteschlangenkapazität.
  • JSON muss gültig sein.
  • Senden Sie event_id nicht an /event/create oder thing_id an /thing/create.
  • Unbekannte Felder entfernen.
  • severity muss critical, high, normal oder low sein.
  • attrs muss ein Objekt-Patch sein, kein Array oder eine tief verschachtelte Struktur.
  • Prüfen Sie, ob der private Gateway über PUSHGO_TOKEN verfügt.
  • Header muss Authorization: Bearer <token> sein.
  • Verwechseln Sie das Channel-Passwort nicht mit dem Gateway-Token.
  • Stellen Sie sicher, dass der Reverse-Proxy keine Autorisierungsheader entfernt.

Die Anfrage ist erfolgreich, aber das Gerät benachrichtigt nicht

Abschnitt betitelt „Die Anfrage ist erfolgreich, aber das Gerät benachrichtigt nicht“
  • Der Client muss den Channel abonniert haben.
  • Die Gerätebenachrichtigungsberechtigung muss aktiviert sein.
  • Die Apple-Lieferung kann durch APNs, Fokusmodi und Systemeinstellungen beeinträchtigt werden.
  • Android-Clients müssen in der Lage sein, den richtigen /gateway/profile abzurufen.
  • Private Transportports, Zertifikate und externe Adressen müssen erreichbar sein.
  • Gateway-Protokolle können Anbieter- oder private Versandfehler anzeigen.
  • PUSHGO_PRIVATE_TRANSPORTS muss aktiviert sein.
  • WSS muss über die HTTPS-Domäne erreichbar sein.
  • Der UDP-Port QUIC wird möglicherweise durch eine Firewall oder einen Proxy blockiert.
  • Raw TCP muss TLS oder TLS-Offload korrekt verarbeiten.
  • Die angekündigten Ports und die tatsächlichen Bind-Ports können je nach NAT oder Port-Mapping unterschiedlich sein.
  • PUSHGO_MCP_ENABLED muss aktiviert sein.
  • PUSHGO_PUBLIC_BASE_URL muss eine externe HTTPS-URL sein.
  • Der Reverse-Proxy muss /.well-known/*, /oauth/* und /mcp weiterleiten.
  • DCR muss mit der Client-Fähigkeit übereinstimmen.
  • Bindungsseitensitzungen können ablaufen.