QuickBooks Online-Abfrage mit Filter gibt 401 jedes Mal zurück

8

Ich habe Erfolg beim Erstellen von Objekten mit POST und Content-Type application / xml

Ich habe auch erfolgreich eine Anfrage mit der Content-Type-Anwendung / x-www-form-urlencoded mit einem leeren Anforderungshauptteil gestellt, der den gesamten Objekttyp zurückgibt, abhängig davon, welchen URI ich angegeben habe.

Ich kann das gleiche auch mit etwas wie PageNum = 1 & amp; ResultsPerPage = 1 in der Anfrage Körper arbeiten und ich habe herausgefunden, wie man das in die Signatur integrieren, so bekomme ich eine gültige Antwort.

Aber egal, wie ich es formatiere, ich kann nichts anderes als eine 401-Antwort bekommen, wenn ich versuche, einen Filter zu verwenden (etwas grundlegend wie Filter = FAMILYNAME: EQUALS: Doe). Ich habe die OAuth Core 1.0 Revision A-Spezifikationen darüber gelesen, wie alle Parameternamen und -werte mithilfe der [RFC3986] Prozent-Codierung maskiert werden. Allerdings habe ich das Gefühl, dass ich einen Schritt verpasse oder falsch formatiere. Ich habe widersprüchliche Informationen bei der Suche in Intuits Foren darüber gesehen, was genau das richtige Format ist.

Jede Hilfe wird sehr geschätzt. Ich kämpfe jetzt seit einer guten Woche damit.

Die Antwort, die ich bekomme, wenn ich versuche, einen Filter zu verwenden, ist: HTTP-Status 401 - Nachricht = Ausnahme, die OAuth authentifiziert; errorCode = 003200; statusCode = 401

---- Aktualisierung ----

Ich sehe den gleichen Fehler, wenn ich versuche, Filter mit den neuen IPP-Entwicklertools - IPP-API-Explorer zu verwenden. Ich benutze den IDS V2 QBO API Explorer. Ich kann dieses Tool verwenden, um alle Posts abzurufen. Die Antwort zeigt alle meine Kunden, aber wenn ich versuche, einen Filter zu verwenden, bekomme ich: Serverfehler 401 - Nicht autorisiert: Zugriff wird aufgrund ungültiger Anmeldeinformationen verweigert. Sie sind nicht berechtigt, dieses Verzeichnis oder diese Seite mit den von Ihnen angegebenen Anmeldeinformationen anzuzeigen.

Irgendwelche Ideen? Wenn ich denselben Fehler vom API-Explorer-Tool erhalte, kann ich annehmen, dass das Problem komplett anders ist.

---- Endgültiges Update ----

Ich hatte endlich Erfolg mit Filtern und ich glaube, ich habe herausgefunden, was mein Problem war. Ich war immer misstrauisch, dass ich Anfragen mit Paginierung wie "PageNum = 1 & amp; ResultsPerPage = 1" erhalten konnte, aber ich konnte etwas wie "Filter = FAMILYNAME: EQUALS: Doe" nicht bekommen. Ich vermutete dort ein Problem mit dem Leerraum im Filterformat. Was mich daran hinderte, dass ich dies früher aufspürte, war, dass ich die Filter nicht im IDS V2 QBO API Explorer verwenden konnte. Das ließ mich vermuten, dass etwas anderes vor sich ging. Ich beschloss, den API Explorer alle zusammen zu ignorieren und mich darauf zu konzentrieren, warum ich es auf die eine, aber nicht auf die andere Weise zum Laufen bringen konnte.

Ich glaube, dass mein Problem auf eine falsche Codierung des Filterwerts in der Signatur zurückzuführen ist. Das erklärt die 401 ungültigen Signaturfehler, die ich bekommen habe.

"Filter = Name: EQUALS: Doe" wird "Filter = Name% 20% 3AEQUALS% 20% 3ADoe" nach der Normalisierung.

Prozent-Codierung, die "Filter% 3DName% 2520% 253AEQUALS% 2520% 253ADoe" ergeben sollte.

Im Wesentlichen müssen Sie das Leerzeichen und die Doppelpunkte, aber nicht das Gleichheitszeichen, "doppelt" kodieren. Ich habe viele Möglichkeiten der Kodierung ausprobiert, glaube aber, mein Fehler war, dass ich entweder nicht "doppelt" kodierte, oder wenn ich doppelt kodierte, nahm ich das "=" - Zeichen auf. In jedem Fall bricht Ihre Unterschrift. Danke für die Beiträge aller.

    
JoshASI 04.02.2013, 20:30
quelle

4 Antworten

2

Ich glaube, dass mein Problem auf eine falsche Codierung des Filterwerts in der Signatur zurückzuführen ist. Das erklärt die 401 ungültigen Signaturfehler, die ich bekommen habe.

Ich habe ein Online-Tool verwendet, um mich durch die Schritte zur korrekten Unterzeichnung einer OAuth-Anfrage zu führen. Während ich diese Schritte durchführte, erkannte ich, dass mein Problem bei den Schritten lag, bei denen Sie die Anforderungsparameter normalisierten und sie dann prozentual codierten. Ich habe das '=' des Filters in den Normalisierungsschritt aufgenommen, wodurch die Signatur unterbrochen wird. Das Tool, das ich verwendet habe, finden Sie unter:

Ссылка

Danke für die Beiträge aller.

    
JoshASI 21.02.2013 17:54
quelle
1

Erhalten Sie eine 401 mit der gleichen Anfrage im API Explorer?

Ссылка

Verwenden Sie auch die statische Basis-URL oder rufen Sie sie zur Laufzeit ab?

Ссылка

Wenn Sie die statische Basis-URL verwenden, wechseln Sie zur Laufzeitbasis-URL, um festzustellen, ob der Fehler weiterhin auftritt.

    
Peter Lavelle 04.02.2013 20:38
quelle
1

peterl hat hier eine meiner Fragen beantwortet, die auch deine beantworten kann. Ich hatte versucht, die Filter in den Körper zu bringen, wenn sie in den Header hätten gehen sollen. Hier war das Code-Beispiel von Peterl für das Erhalten aller unbezahlten Rechnungen (offener Kontostand größer als 0.00) für einen bestimmten Kunden.

Ссылка

%Vor%

Sie können auch meine ursprüngliche Frage hier auf StackOverflow sehen: .

    
cepatt 21.02.2013 13:27
quelle
0

Ich habe über meine Erfahrung mit fliehenden Zeichen in einem QuickBooks-OAuth geschrieben Anfrage.

    
Minimul 14.02.2014 16:23
quelle