Ankündigung

Einklappen
Keine Ankündigung bisher.

HTTP-Get für Github

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    HTTP-Get für Github

    Hallo Zusammen,

    ich würde gern die aktuelle Tasmota Version bei Github abfragen.
    Die URL dafür wäre
    https://api.github.com/repositories/...eleases/latest

    Die Rückgabe erfolgt im JSON-Format, welches man mit dem JSON Extractor auswerten kann.
    Im Browser funktioniert dies tadellos.
    Wenn ich es über HTTP-Get im Edomi versuche bekomme ich immer die Fehlermeldung
    file_get_contents(https://api.github.com/repositories/...eases/latest): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden[CR][LF]

    Ich stehe auf dem Schlauch. Kann mich jemand aufschlauen warum es nicht geht bzw. wie es funktionieren kann?

    Danke!
    Zuletzt geändert von royrobson; 16.11.2019, 14:28.

    #2
    Vielleicht fehlen paar Header im context

    Kommentar


      #3
      Ich bin leider nicht der Profi Programmierer.
      Ich habe mich bereits durch die Developer Doku für die Github API gewühlt. Was mir da aufgefallen ist, sind diverse Authentifizierungsdinge die man bei der API mitgeben kann (oder muss!?)

      Was ich nur nicht verstehe ist, dass der Aufruf im Browser und auch der Aufruf via Powershell (Invoke-Webrequest "<URL") keinen Authentifizierungsfehler bewirken.
      Insofern muss es doch auch mit einem Anonymen Zugriff funktionieren.

      Gerrn sagen wie man bei der URL notwendige Header mitgibt, die der Browser und auch die Powershell offenbar von allein mitliefern.

      Kommentar


        #4
        Das ist ein Feature des GIT Webservers, was verhindern soll, dass über die API unkontrolliert Daten geladen werden.
        Das Kriterium für diesen Statuscode ist meist der fehlende User-Agent.

        Während dieses Skript genau zu deinem Fehler führt:

        PHP-Code:
        <?php
        file_get_contents
        ("https://api.github.com/repositories/80286288/releases/latest");
        ?>
        funktioniert es in dieser Form

        PHP-Code:
        <?php
        ini_set
        ('user_agent','Mozilla/4.0 (compatible; MSIE 6.0)');
        file_get_contents("https://api.github.com/repositories/80286288/releases/latest");
        ?>
        Mit EDOMI Bordmitteln wird es daher vermutlich nicht funktionieren. Ein Mini-LBS könnte das Problem einfach lösen. Oder vielleicht gibt es im Download Portal etwas passendes.

        Du würdest außerdem Probleme mit der 10.000 Zeichen Begrenzung des Ergebnis-iKO bekommen, da die Rückmeldung deutlich länger zu sein scheint.

        Kommentar


          #5
          Danke jonofe ! Das verstehe ich :-)

          Ich schau bei Gelegenheit ins Download-Portal oder tüftel mal wieder an einem LBS.

          Kommentar


            #6
            Hallo Zusammen,

            ich habe einen LBS zusammen geschustert.

            https://service.knx-user-forum.de/?c...ad&id=19001116

            Code-Optimierungen gern schicken ;-)

            Kommentar

            Lädt...
            X