X API v2 HTTP-Statuscodes
Code | Text | Beschreibung | Tipps zur Fehlerbehebung |
---|---|---|---|
200 | OK | Die Anfrage war erfolgreich! | |
400 | Bad Request | Die Anfrage war ungültig oder kann nicht verarbeitet werden. Eine dazugehörige Fehlermeldung erläutert die Details. Anfragen ohne Authentifizierung oder mit ungültigen query-Parametern gelten als ungültig und führen zu dieser Antwort. | Überprüfen Sie das Format Ihrer JSON-Abfrage. Wenn Ihre Regel beispielsweise doppelte Anführungszeichen enthält, die mit einem Exact-Match- oder einem anderen Operator verknüpft sind, müssen Sie diese möglicherweise mit einem Backslash maskieren, um sie von der Struktur des JSON-Formats zu unterscheiden. |
401 | Unauthorized | Es gab ein Problem bei der Authentifizierung Ihrer Anfrage. Dies kann auf fehlende oder falsche Authentifizierungsdaten zurückzuführen sein. Dies kann auch in anderen, nicht näher definierten Umständen zurückgegeben werden. | Prüfen Sie, ob Sie die richtige Authentifizierungsmethode verwenden und ob Ihre Zugangsdaten korrekt sind. |
403 | Forbidden | Die Anfrage wurde verstanden, aber abgelehnt, oder der Zugriff ist nicht erlaubt. Eine dazugehörige Fehlermeldung erklärt den Grund. | Prüfen Sie, ob Ihr Developer-Konto Zugriff auf das Endpoint hat, das Sie verwenden möchten. Möglicherweise muss Ihre App allowgelistet werden (z. B. Engagement API oder Ads API), oder Sie müssen Zugriff beantragen. |
404 | Not Found | Die angeforderte URI ist ungültig, oder die angeforderte Ressource, z. B. ein Benutzer, existiert nicht. | Prüfen Sie, ob Sie gültige Parameter und die korrekte URI für das von Ihnen verwendete Endpoint verwenden. |
409 | Connection Exception | Wird zurückgegeben, wenn versucht wird, eine Verbindung zu einem Filtered stream ohne Regeln herzustellen. | Prüfen Sie, ob Sie mindestens eine Regel für den Stream erstellt haben, zu dem Sie eine Verbindung herstellen. Filtered stream liefert nur Posts, die einer aktiven Regel entsprechen. Wenn es keine Regeln gibt, liefert der Stream keine Posts. |
429 | Too Many Requests | Wird zurückgegeben, wenn eine Anfrage aufgrund der Rate Limit der App oder eines ausgeschöpften Post cap nicht bedient werden kann. Siehe Rate Limiting. | Prüfen Sie die Anzahl der Anfragen pro Zeitraum, die mit dem von Ihnen verwendeten Endpoint zulässig sind. Warten Sie, bis der Zeitraum zurückgesetzt wird. Verteilen Sie Ihre Anfragen, um zu vermeiden, dass Sie an Rate Limits stoßen, oder upgraden Sie auf den nächsten verfügbaren Datentarif. |
500 | Internal Server Error | Etwas ist kaputt. Dies ist in der Regel ein vorübergehender Fehler, zum Beispiel bei hoher Last oder wenn ein Endpoint vorübergehend Probleme hat. | Prüfen Sie die X API-Statusseite oder das Developer-Community-Forum, falls andere ähnliche Probleme haben, oder warten Sie einfach und versuchen Sie es später erneut. |
501 | Unimplemented | Die X API unterstützt dieses Endpoint nicht und kann die Anfrage nicht erfüllen. | |
503 | Service Unavailable | Die X-Server sind erreichbar, aber mit Anfragen überlastet. Versuchen Sie es später erneut. | Prüfen Sie die X API-Statusseite oder das Developer-Community-Forum, falls andere ähnliche Probleme haben, oder warten Sie einfach und versuchen Sie es später erneut. |
Partielle Fehler
Fehlerinformationen
Titel | Typ | Beschreibung |
---|---|---|
Allgemeines Problem | about:blank | Ein allgemeines Problem ohne zusätzliche Informationen über die durch den HTTP-Statuscode bereitgestellten hinaus. |
Ungültige Anfrage | https://api.X.com/2/problems/invalid-request | Ein Problem, das darauf hinweist, dass diese Anfrage ungültig ist. Wenn Ihre Anfrage einen POST-Body enthält, stellen Sie sicher, dass der Inhalt gültiges JSON ist und der OpenAPI-Spezifikation entspricht. |
Ressource nicht gefunden | https://api.X.com/2/problems/resource-not-found | Ein Problem, das darauf hinweist, dass ein bestimmter Post, User usw. nicht existiert. |
Nicht autorisiert für Ressource | https://api.X.com/2/problems/not-authorized-for-resource | Ein Problem, das darauf hinweist, dass Sie einen bestimmten Post, User usw. nicht sehen dürfen. |
Client nicht zulässig | https://api.X.com/2/problems/client-forbidden | Ein Problem, das darauf hinweist, dass Ihr Client diese Anfrage nicht stellen darf. |
Nicht zulässige Ressource | https://api.X.com/2/problems/disallowed-resource | Ein Problem, das darauf hinweist, dass die angeforderte Ressource den Grundsätzen dieser API widerspricht. |
Nicht unterstützte Authentifizierung | https://api.X.com/2/problems/unsupported-authentication | Ein Problem, das darauf hinweist, dass die verwendete Authentifizierung nicht unterstützt wird. |
Nutzungslimit überschritten | https://api.X.com/2/problems/usage-capped | Ein Problem, das darauf hinweist, dass ein Nutzungslimit überschritten wurde. |
Verbindungsproblem | https://api.X.com/2/problems/streaming-connection | Ein Problem, das darauf hinweist, dass etwas mit der Verbindung nicht stimmt. |
Client getrennt | https://api.X.com/2/problems/client-disconnected | Ihr Client ist nicht mehr verbunden. |
Betriebliche Trennung | https://api.X.com/2/problems/operational-disconnect | Sie wurden aus betrieblichen Gründen getrennt. |
Regelanzahl überschritten | https://api.X.com/2/problems/rule-cap | Sie haben die maximale Anzahl von Regeln überschritten. |
Regel-Längenüberschreitung | https://api.X.com/2/problems/rule-length | Sie haben abhängig von Ihrer Zugriffsstufe die maximale Anzahl von Zeichen für Ihre query oder Regel überschritten. Siehe Zugriffsebenen. |
Ungültige Regeln | https://api.X.com/2/problems/invalid-rules | Die von Ihnen übermittelte Regel ist ungültig. |
Doppelte Regeln | https://api.X.com/2/problems/duplicate-rules | Die von Ihnen übermittelte Regel ist ein Duplikat. |
Tipps zur Fehlerbehebung
Debugging Ihres Codes
Debugging Ihres Codes
Beim Erstellen einer Anwendung ist es normal, gelegentlich auf Fehler oder unerwartete Probleme zu stoßen. Im Folgenden finden Sie einige Tipps, wie Sie Ihren Code debuggen können:Beginnen Sie damit, das Problem in kleinere Teile zu zerlegen, um herauszufinden, wo es liegt. Wenn Sie beispielsweise ein REST- oder ein Streaming-endpoint integrieren, kann das Problem an einem der folgenden Punkte liegen:
- Der endpoint erfordert eine korrekte Authentifizierung.
- Der endpoint erfordert gültige Parameter und Header. Etwaige Filterregeln werden mit den richtigen Operatoren und der korrekten Syntax erstellt.
- Die URI des endpoint muss korrekt sein und im Fall von REST-endpoints muss die richtige HTTP-Methode verwendet werden.
- Die data oder Ressource, auf die Sie zugreifen möchten, ist für Sie nicht zugänglich (zum Beispiel sind private data nur für authentifizierte Nutzer verfügbar).
- Ihr aktuelles data-Paket gewährt Ihnen nur für bestimmte endpoints und spezifische Rate Limits Zugriff. Weitere Details finden Sie in Ihrem Entwicklerportal.
- Ihr Code verwendet eine Bibliothek eines Drittanbieters, um den endpoint in Ihren Code zu integrieren.
- Ihr Code muss die Antwort des endpoint erfolgreich parsen.
Authentifizierungsprobleme
Authentifizierungsprobleme
- Prüfen Sie, ob Sie die für den endpoint erforderliche Authentifizierungsmethode verwenden. Dies lässt sich über die API-Referenzseite des endpoint feststellen.
- Prüfen Sie, ob Ihre Authentifizierungsdaten korrekt sind. Sie können Ihre App Keys und Tokens im Apps-Bereich Ihres Entwickler-Dashboards (unter „Details“) überprüfen oder neu generieren.
- Prüfen Sie, ob Sie Ihre OAuth 1.0a-Anfrage ordnungsgemäß autorisiert haben – mit
oauth_nonce
,oauth_signature
undoauth_timestamp
für Ihre Anfrage. - Wenn das Problem weiterhin besteht, ziehen Sie eine OAuth-Bibliothek, einen REST-Client wie Postman oder Insomnia oder xurl in Betracht.
Probleme mit Rate Limits und Post cap
Probleme mit Rate Limits und Post cap
Ein 429-Fehler kann auftreten, wenn Sie das Rate Limit für ein bestimmtes Endpoint erreichen oder wenn Sie die Post cap erreichen.Wenn der spezifische Fehler „Too many requests“ zurückgegeben wird, haben Sie das Rate Limit des Endpoints erreicht. Anders ausgedrückt: Sie haben die maximale Anzahl von Anfragen überschritten, die für ein Endpoint pro festgelegtem Zeitraum erlaubt sind.Beachten Sie, dass Rate Limits auf App- und Benutzer-Ebene festgelegt sind.
- X App-Ebene gibt die Anzahl der zulässigen Anfragen bei Verwendung von OAuth 2.0 App-Only an, wobei Rate Limits global für die gesamte App gelten. Wenn eine Methode beispielsweise 15 Anfragen pro Rate-Limit-Fenster zulässt, können Sie 15 Anfragen pro Fenster im Namen Ihrer X App stellen. Dieses Limit ist vollständig getrennt vom Benutzer-Level-Limit zu betrachten. Weitere Informationen finden Sie in unserem Leitfaden zu OAuth 2.0 App-Only.
- Benutzerkontext-Ebene gibt die Anzahl der Anfragen an, die pro Benutzer-Access Token bei Verwendung von OAuth 1.0a User Context oder OAuth 2.0 Authorization Code mit PKCE gestellt werden können. Wenn eine Methode beispielsweise 15 Anfragen pro Rate-Limit-Fenster zulässt, erlaubt sie 15 Anfragen pro Fenster und pro Benutzer-Access Token. Lesen Sie mehr in unserem Leitfaden dazu, wie Sie die Access Tokens eines Nutzers mit OAuth 1.0a und OAuth 2.0 erhalten.
Probleme mit fehlenden Posts
Probleme mit fehlenden Posts
Befolgen Sie die folgenden Schritte, wenn Sie erwartet haben, dass ein Post zurückgegeben wird, er aber nicht vom Endpoint geliefert wurde.
- Überprüfen Sie Ihre Regel, um sicherzustellen, dass Sie die richtigen operators und die richtige syntax verwenden. Teilen Sie die Regel in kleinere Klauseln auf, um sicherzustellen, dass Sie die korrekte Syntax verwenden.
- Wenn das Konto, von dem der Post gesendet wurde, zum Zeitpunkt der Erstellung des Posts protected war, wird der Post nicht zurückgegeben – selbst wenn das Konto zum Zeitpunkt der Anfrage an das Endpoint öffentlich ist. Dies können Sie in der Regel mit der X Advanced Search prüfen: Wenn ein Post mit der X-Advanced-Search-Funktionalität nicht angezeigt wird, sollten Sie davon ausgehen, dass er vom Endpoint nicht zurückgegeben wird.
- Waren Sie mit dem Stream verbunden, als der Post gesendet wurde? Denken Sie daran, dass der im Post-Objekt gelieferte Zeitstempel die Zeit in UTC angibt. Wenn es zum Zeitpunkt des Posts zu einer Trennung kam, prüfen Sie die verfügbaren Recovery- und Redundanzfunktionen, um verpasste data nachzufüllen.
- War Ihre Regel aktiv, als der Post gesendet wurde? Denken Sie daran, dass der im Post-Objekt gelieferte Zeitstempel die Zeit in UTC angibt.
Probleme mit Verbindungsabbrüchen aufgrund voller Puffer
Probleme mit Verbindungsabbrüchen aufgrund voller Puffer
Sie können einen der folgenden Fehler erhalten, wenn Ihr Stream nicht mit der Geschwindigkeit Schritt hält, mit der wir Daten liefern, und Ihre App die Daten aus dem Stream nicht schnell genug verarbeitet:Wir lassen zu, dass die Zustellung für eine gewisse Zeit zurückliegt, und halten auf unserer Seite für jeden Stream einen temporären Staging-Puffer vor; wenn Sie jedoch nicht aufholen, leiten wir eine Trennung ein, damit Sie sich zum aktuellen Zeitpunkt erneut verbinden können. Bitte beachten Sie, dass dies zu Datenverlust führen kann (für Daten, die sich zum Zeitpunkt des vollständigen Pufferabbruchs im Puffer befinden).Dies kann bei starken Daten-Spitzen auftreten. Generell empfehlen wir, einen separaten Puffer-Mechanismus für die schnelle Datenaufnahme zu verwenden, der vom eigentlichen Verarbeitungsprozess getrennt ist.Wenn Sie Enterprise-Kunde sind und v1.1 endpoints verwenden, erfahren Sie in unseren Artikeln zu connection sowie zum Konsumieren von Streaming-Daten hier und hier mehr darüber, wie Sie Ihre App optimieren können, um solche Verbindungsabbrüche zu verhindern.Es steht eine Reihe von Tools zur Verfügung, um verpasste Posts aufgrund eines Verbindungsabbruchs abzurufen, einschließlich der unten aufgeführten. Beachten Sie, dass die folgenden Tools nur mit v1.1 endpoints auf Enterprise-Zugriffsebene verfügbar sind.
- Redundant Connections - Mit mehreren Verbindungen den Stream von mehreren Servern beziehen, um Datenverluste zu vermeiden, wenn eine Verbindung getrennt wird.
- Replay - Daten aus den letzten 5 Tagen über einen separaten Stream wiederherstellen.
- Backfill - Innerhalb von 5 Minuten erneut verbinden und an der zuletzt verarbeiteten Stelle fortsetzen.
- Historical PowerTrack - Daten aus dem gesamten X-Archiv wiederherstellen.
Hilfe erhalten
Bevor Sie eine Frage posten
- Durchsuchen Sie die X Developer-Dokumentation nach Informationen zu Ihrem Problem
- Suchen Sie im Community-Forum nach ähnlichen Fragen anderer Entwickler
- Lesen Sie die Richtlinien des Community-Forums
Wenn Sie eine Frage posten, stellen Sie bitte sicher, dass Sie die folgenden Informationen angeben
- Eine Beschreibung des Problems
- Den ausgeführten API-Aufruf (nach Möglichkeit mit Headern)
- Die zurückgegebene X-Antwort (einschließlich etwaiger Fehlermeldungen)
- Was Sie stattdessen zu erhalten erwartet hätten
- Liste der durchgeführten Schritte zur Fehlerbehebung
- Liste der Schritte, die zum Reproduzieren des Problems erforderlich sind
- Falls relevant, der Zeitraum, in dem das Problem auftrat
- Falls relevant, die App-ID, Post-ID usw.
- Relevante Codebeispiele oder Screenshots