http POST mit Parametern - wie funktioniert das?
Hallo zusammen,
wir versuchen einen POST request per Ninox zu senden.
Die GET requests funktionieren ohne Probleme.
Aber bei POST werden die Parameter auf dem Server nicht erkannt bzw. nicht an ihn zugestellt.
Die Folgenden Versionen habe ich alle ausprobiert. Aber egal wie - immer das gleiche Ergebnis. Der Parameter client_id kommt bei digikey nicht an.
let oauth := do as server
http("POST", "https://api.digikey.com/v1/oauth2/token“, {'client_id': „xyz“ } )
end;
oder:
let oauth := do as server
http("POST", "https://api.digikey.com/v1/oauth2/token“, { ‘content-type’:“application/json“}, {'client_id': „xyz“ } )
end;
oder:
let oauth := do as server
http("POST", "https://api.digikey.com/v1/oauth2/token“, {'client_id': „xyz“ }, { ‘content-type’:“application/json“} )
end;
oder:
let oauth := do as server
http("POST", "https://api.digikey.com/v1/oauth2/token“, {'client_id': „xyz“ } , {'client_id': „xyz“ })
end;
oder:
let oauth := do as server
http("POST", "https://api.digikey.com/v1/oauth2/token“, "client_id=xyz")
end;
digikey antwortet immer: "client_id" is undefined or null
Für jede Hilfe wäre ich sehr dankbar.
Achim
5 Antworten
-
Hallo Achim
OAuth2.0 direkt aus Ninox heraus wird wohl nicht funktionieren.
Da must du wohl schauen ob eine Drittlösung wie Zapier,Integromat eine Lösung für digikey hat oder mit NodeRed oder n8n dir selber etwas bauen um OAuth-POST-Requests zu erzeugen. -
Hallo Uwe,
danke für die schnelle Antwort.
Ganz OAuth2.0 will ich nicht machen. Ich möchte nur einen neuen Token mit einem vorhandenen (langlebigen) Refreshtoken erzeugen.
Das ist ein einziger POST request - halt mit Parametern.
Oder heisst das, dass die OAuth POST Spezifikation ein anderes HTTP POST verwendet?
Die Frage ist ja, wo der Parameter hängen bleibt.
Der Call funktioniert mit einem einzigen CURL Befehl auf der Kommandozeile wunderbar.curl --data "client_id=xxx" --data "client_secret=yyy" --data "refresh_token=zzz" --data "grant_type=refresh_token" "https://api.digikey.com/v1/oauth2/token"
Das Ergebis beinhaltet dann den Bearer Token für den eigentlichen Request.
Also die Frage bleibt: Hat Ninox bei POST requests Probleme mit Parametern?
Viele Grüße
Achim
-
Wenn curl funktioniert, dann sollte es in Ninox so laufen:
----let myURL:="https://api.digikey.com/v1/oauth2/token";
let my Headers:={
'content-type':"application/json"
};
let myBody:={
client_id : "xyz",
client_secret : "yyy",
grant_type : "refresh_token",
refresh_token : "zzz"
},
let oauth := do as server
HTTP("POST",myURL,myHeaders,myBody)
end;
alert(oauth.result)
---Leo
-
Hallo Leo,
danke für Deine Antwort.
Aber es klappt nicht. Ich habe es sicherheitshalber auch mit Deinem Code oben getestet.Probier es selbst mal in der Console aus und mit CURL so wie ich es geschrieben habe.
Ergebnis von Ninox POST: client_id is undefined or null
Ergebnis von CURL POST: invalid refreshToken (was ja klar ist - denn zzz ist nicht korrekt)Hmm
Achim
-
Noch eine Anmerkung dazu:
Das ist was ich ausprobiert habe:l
et myURL := "https://api.digikey.com/v1/oauth2/token";
let myHeaders:={
'content-type':"application/json"
};
let myBody:={
client_id : "xyz",
client_secret : "yyy",
grant_type : "refresh_token",
refresh_token : "zzz"
};
let oauth := do as server
http("POST",myURL,myHeaders,myBody)
end;
alert(oauth.result)
Achim
Content aside
-
1
„Gefällt mir“ Klicks
- vor 2 JahrenZuletzt aktiv
- 5Antworten
- 481Ansichten
-
1
Folge bereits