Ankündigung

Einklappen
Keine Ankündigung bisher.

Api

Einklappen

Neue Werbung 2019

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

  • Api

    Habt ihr eine Idee um ein PHP Script zu schreiben, welches die Daten über die API abholt und eine
    summen bildet.

    Bin leicht überfordert

  • #2
    Zitat von msuu Beitrag anzeigen
    Habt ihr eine Idee um ein PHP Script zu schreiben, welches die Daten über die API abholt und eine
    summen bildet.
    Ja.

    Was hast du versucht bisher? Mal die Suchmaschiene Deiner Wahl befragt?
    Z.b. https://stackoverflow.com/questions/...est-api-in-php

    Kommentar


    • #3
      Habe versucht was zu suchen aber leider nicht richtiges gefunden.

      Bin sehr neu in dem Gebiert habe auch kein richtigen Ansatz.

      Kommentar


      • #4
        Was steht denn in der API wie die abgefragt werden soll? I.d.R. nimmst du dazu CURL

        https://www.php.net/manual/en/function.curl-exec.php

        Kommentar


        • #5
          Habe den Code in C# und soll ihn umschreiben in PHP nur mir fehlt der richtige Ansatz, da ich sehr neu in PHP bin

          namespace AemApi
          {
          internal class Program
          {
          private static void Main(string[] args)
          {
          // Define constants
          const string apiUrl = "[API URL]";
          const string apiKey = "[API Key]";
          const string apiSecretKey = "[API Secret Key]";
          const string apiMethod = "[API Method]";
          const string apiRequest = "[API Request]";
          const string apiRequestBody = "[API Request Body]";

          // Request token
          var client = new HttpClient();
          var byteArray = new UTF8Encoding().GetBytes("public-clientublic");
          client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
          var form = new FormUrlEncodedContent(new Dictionary<string, string> { { "username", apiKey }, { "password", apiSecretKey }, { "grant_type", "password" } });
          var tokenMessage = client.PostAsync(apiUrl + "/auth/oauth/token", form);
          var result = tokenMessage.Result.Content.ReadAsStringAsync().Re sult;
          var obj = JObject.Parse(result);
          var servicetoken = (string)obj["access_token"];

          // Set request type
          HttpMethod CreateHttpMethod(string method)
          {
          switch (method.ToUpper())
          {
          case "POST":
          return HttpMethod.Post;

          case "PUT":
          return HttpMethod.Put;

          case "DELETE":
          return HttpMethod.Delete;

          default:
          return HttpMethod.Get;
          }
          }

          var requestType = CreateHttpMethod(apiMethod);

          // Build request
          var request = new HttpRequestMessage(requestType, apiUrl + "/api" + apiRequest);
          request.Headers.Add("authorization", $"Bearer {servicetoken}");

          // Add request body if present
          if (!string.IsNullOrEmpty(apiRequestBody))
          {
          request.Content = new StringContent(apiRequestBody, Encoding.UTF8, "application/json");
          }

          // Send request
          var requestMessage = client.SendAsync(request);
          requestMessage.Wait();
          var response = requestMessage.Result.Content.ReadAsStringAsync(). Result;

          // Output response
          if (string.IsNullOrEmpty(response)) return;
          var jsonObject = JObject.Parse(response);
          Console.WriteLine(jsonObject.ToString());
          }
          }
          }


          ---------------------------------------------

          namespace AemApi
          {
          internal class Program
          {
          private static void Main(string[] args)
          {
          // Define constants
          const string apiUrl = "[API URL]";
          const string apiKey = "[API Key]";
          const string apiSecretKey = "[API Secret Key]";

          // Request token
          var client = new HttpClient();
          var byteArray = new UTF8Encoding().GetBytes("public-clientublic");
          client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
          var form = new FormUrlEncodedContent(new Dictionary<string, string> { { "username", apiKey }, { "password", apiSecretKey }, { "grant_type", "password" } });
          var tokenMessage = client.PostAsync(apiUrl + "/auth/oauth/token", form);
          var result = tokenMessage.Result.Content.ReadAsStringAsync().Re sult;
          var obj = JObject.Parse(result);
          var servicetoken = (string)obj["access_token"];

          // Output token
          Console.WriteLine(servicetoken);
          }
          }
          }


          Kommentar


          • #6
            Ja dann guck dir mal CURL an und guck wie weit du kommst, Funktionen die du nicht kennst musst du entsprechend im Manual nachgucken. Die Klassendefinitionen kannst du ja so erstmal übernehmen. Als HTTP-Client kannst du zum einstieg auch mal Guzzle nehmen

            http://docs.guzzlephp.org/en/stable/

            Kommentar

            Lädt...
            X