Laden...

RestSharp OAuth - signature_invalid

Erstellt von limu81 vor 2 Jahren Letzter Beitrag vor 2 Jahren 277 Views
L
limu81 Themenstarter:in
2 Beiträge seit 2021
vor 2 Jahren
RestSharp OAuth - signature_invalid

Hallo ich habe ein Problem mit der API von Etsy wenn ich in meinem Request Umlaute verwende.

Im folgenden vereinfachten Code habe ich beim Paramater title 'testartikel mit Ä' stehen. Wenn ich das Ä weglasse funktioniert der Code einwandfrei.
Mit dem Ä bekomme ich unten angegebenen Fehler. Das Ä durch %C3%84 zum Beispiel zu ersetzen hatte auch keinen Erfolg gebracht.


ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var restClient = new RestClient("https://openapi.etsy.com/v2");
restClient.Authenticator = OAuth1Authenticator.ForAccessToken(etsyCredentials.ConsumerKey, etsyCredentials.ConsumerSecret, etsyCredentials.OAuth_Token, etsyCredentials.OAuth_Token_Secret, RestSharp.Authenticators.OAuth.OAuthSignatureMethod.HmacSha1);


string requestParameters = "/listings?quantity=1&title=testartikel mit Ä&description=Testartikel, Bitte nicht kaufen.&price=0.99&taxonomy_id=6451&who_made=i_did&when_made=2010_2019&is_supply=false
&shipping_template_id=60205488400&renew=True&state=draft&language=de";
var request = new RestRequest(requestParameters);
request.Method = Method.POST;

IRestResponse irestResponse = restClient.Execute(request);

Fehlermeldung:
"oauth_problem=signature_invalid&debug_sbs=POST&https
%3A%2F%2Fopenapi.etsy.com%2Fv2%2Flistings&description%3DTestartikel%252C%2520Bitte%2520nicht%2520kaufen.%26is_supply%3Dfalse%26language%3Dde%26oauth_consumer_key%3Dgn31uuabj1qv97zjqozgnsto%26oauth_nonce%3D02xdjk7bxv4id7mx%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1631170110%26oauth_token
%3D8fc58d589855126dd880b3ac74eb1b%26oauth_version%3D1.0%26price%3D0.99%26quantity%3D1%26renew%3DTrue%26shipping_template_id%3D60205488400%26state%3Ddraft%26taxonomy_id%3D6451%26title%3Dtestartikel%2520mit%2520%25C3%2584%26when_made%3D2010_2019%26who_made%3Di_did"

Ich hatte diese Frage auch schon in GoogleGroups ohne Antworten und auf stackoverflow gepostet. Leider haben mir die Antworten dort nicht weiterhelfen können.
https://groups.google.com/g/etsy-api-v2/c/IQuehEjNwI4
etsy-restsharp-oauth-signature-invalid

Es wäre super wenn mir hier jemand bei dem Problem weiterhelfen könnte, da ich echt nicht mehr weiter weiß.

Grüße limu

16.842 Beiträge seit 2008
vor 2 Jahren

RestSharp ist ein sehr sehr sehr einfaches Konstrukt; Du musst hier alles manuell encoden.
Siehe dazu auch Lösungsvorschläge im Repo, zB https://github.com/restsharp/RestSharp/issues/1141

Wenn Du eine modernere Lib verwenden würdest zB Refit verwendest; das macht sowas alles automatisch.
Ob aber etsy allgemein was gegen Umlaute / Special Chars hat, das musst evtl in der Doku nachlesen, das hat dann nichts mit HTTP / REST zutun.

L
limu81 Themenstarter:in
2 Beiträge seit 2021
vor 2 Jahren

Hallo Abt,

danke dir für die Antwort.
Dann werde ich mir mal Refit anschauen und testen ob es damit klappt.

In der Doku von Etsy gibt es keinerlei Infos zu Umlauten.
Das ist die einzige angegebene Einschränkung:

This string is valid if it does not match the following pattern: /[^\p{L}\p{Nd}\p{P}\p{Sm}\p{Zs}™©®]/u. The characters %, :, & and + can only be used once each.