Hallo zusammen,
ich will einen Logikbaustein für den Abruf von Tibber-Strompreisen (Stromanbieter) in einem bestimmten Smart-Home-System entwickeln.
Ich bin fast fertig, aber irgendwie funktioniert der CURL-Abruf nicht (Besonderheit: Tibber nutzt GraphQL. Ich weiß, CURL ist nicht die beste Wahl, aber aufgrund der Beschränkungen des SDK/der Software kann ich nichts anderes verwenden (eine Diskussion darüber bringt leider nicht viel).
Es ist alles nur ein Ausschnitt...
Das Problem: Irgendwie komme ich mit den Backslashes etc. nicht zu recht. Es wird von der API nichts zurückgegeben; ich glaube, ich habe irgendwo einen "Syntax"-Fehler eingebaut.
Hat da jemand eine Idee für mich? Ich bin ziemlicher Anfänger, mit GraphQL habe ich noch nie etwas gemacht.
In Postman habe ich das alles schon zum Laufen bekommen.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| private static string DownloadByCurl(string str) { Process process = new Process(); process.StartInfo.FileName = "curl"; process.StartInfo.Arguments = str; process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardError = true; process.StartInfo.CreateNoWindow = true; process.StartInfo.StandardOutputEncoding = Encoding.UTF8; process.Start(); string end = process.StandardOutput.ReadToEnd(); process.WaitForExit(); return end; }
public override void Execute() { if (this.Trigger.WasSet && this.Trigger.Value) { try { string url = "-H 'Authorization: Bearer " + this.Token + "' -H 'Content-Type: application/json' -X POST --data-raw '{\"query\":\"{ viewer { homes { currentSubscription { priceInfo { current { total energy tax startsAt } } } } } }\"}' https://api.tibber.com/v1-beta/gql"; string get = DownloadByCurl(url);
this.Fehler.Value = string.Empty; this.Output.Value = get; this.Output2.Value = url; } ... |
Offiziell schreibt TIBBER (Token ist natürlich nur ein Demotoken):
Zitat: |
curl \
-H "Authorization: Bearer 5K4MVS-OjfWhK_4yrjOlFe1F6kJXPVf7eQYggo8ebAE" \
-H "Content-Type: application/json" \
-X POST \
-d '{ "query": "{viewer {homes {currentSubscription {priceInfo {current {total energy tax startsAt }}}}}}" }' api.tibber.com/v1-beta/gql
|
Viele Grüße
Alex
Moderiert von Th69: Quote-Tags hinzugefügt