Office: (Office 2019) API Excel Zugriff (via Daten abrufen)

Helfe beim Thema API Excel Zugriff (via Daten abrufen) in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo liebes Forum, ich möchte gerne über Excel auf eine REST API zugreifen (edoobox), um dort Daten abzurufen und dann tabellarisch in Excel... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von cav01, 9. August 2020.

  1. API Excel Zugriff (via Daten abrufen)


    Hallo liebes Forum,

    ich möchte gerne über Excel auf eine REST API zugreifen (edoobox), um dort Daten abzurufen und dann tabellarisch in Excel auszugeben. Die Authentifizierung erfolgt über API-Keys. Über "Daten abrufen" habe ich eine leere Abfrage zu erstellt und dann mit dem erweiterten Power-Query Editor gearbeitet. Meine Idee war es mit der Web.Contents()-Funktion zu arbeiten - ich habe aber verschiedene Probleme mit der Authentisierung über die API-Keys sowie bei der Übergabe der relevanten Parameter.

    Mir liegen nur Beispiel-Codes in Java bzw. PHP vor (siehe unten):
    Alles Wissenswerte über die REST API finden Sie hier
    https://docs.edoobox.com/knowledge-b...rcen-rest-api/

    Weiterhin habe ich noch folgende Info bekommen:
    - Der Request muss mit dem Body gesendet werden
    - Im Body sind mind. "API1" und "API2" und die "language" auszufüllen

    Das sind meine ersten Abfrage-Versuche in Power-Query:
    Code:
    Da ich nicht sehr viele Erfahrungen mit Power-Query Abfragen und PHP habe, komme ich leider nicht weiter.

    Kann mir hier jemand weiterhelfen bzw. ein paar Tipps geben?

    Vielen Dank!

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

    Hier ein paar Auszüge aus den PHP-Beispielcodes:

    Implementierung des REST Clients

    PHP:
             <?php class edooboxAPI
    {
    const 
    METHOD_GET 'GET';
    const 
    METHOD_PUT 'PUT';
    const 
    METHOD_POST 'POST';
    const 
    METHOD_DELETE 'DELETE';
    protected 
    $validMethods = [
    self::METHOD_GET,
    self::METHOD_PUT,
    self::METHOD_POST,
    self::METHOD_DELETE,
    ];
    protected 
    $api1;
    protected 
    $api2;
    protected 
    $apiToken;
    protected 
    $apiUrl;
    protected 
    $cURL;

    public function 
    __construct($apiUrl$api1$api2)
    {
    $this->apiUrl rtrim($apiUrl'/') . '/';
    $this->api1 trim($api1);
    $this->api2 trim($api2);

    //Initializes the cURL instance
    $this->cURL curl_init();
    curl_setopt($this->cURLCURLOPT_RETURNTRANSFERtrue);
    curl_setopt($this->cURLCURLOPT_FOLLOWLOCATIONfalse);
    curl_setopt($this->cURLCURLOPT_USERAGENT'edooboxAPI');
    curl_setopt($this->cURLCURLOPT_HTTPAUTHCURLAUTH_BASIC);
    curl_setopt($this->cURLCURLOPT_USERPWD'edapi:DyivKSgxEifwQi2');
    curl_setopt(
    $this->cURL,
    CURLOPT_HTTPHEADER,
    [
    'Content-Type: application/json; charset=utf-8']
    );
    }

    function 
    __destruct() {
    curl_close($this->cURL);
    }

    public function 
    call($url$method self::METHOD_GET$data = [], $params = [])
    {
    if (!
    in_array($method$this->validMethods)) {
    throw new 
    Exception('Invalid HTTP-Methode: ' $method);
    }
    $queryString '';
    if (!empty(
    $params)) {
    $queryString http_build_query($params);
    }
    $url rtrim($url'?') . '?';
    $url $this->apiUrl $url $queryString;
    $data['api1'] = $this->api1;
    $data['api2'] = $this->api2;

    $dataString json_encode($data);
    curl_setopt($this->cURLCURLOPT_URL$url);
    curl_setopt($this->cURLCURLOPT_CUSTOMREQUEST$method);
    curl_setopt($this->cURLCURLOPT_POSTFIELDS$dataString);
    $result curl_exec($this->cURL);
    $httpCode curl_getinfo($this->cURLCURLINFO_HTTP_CODE);

    return 
    $this->prepareResponse($result$httpCode);
    }

    public function 
    get($url$data = [], $params = [])//Select
    {
    return 
    $this->call($urlself::METHOD_GET$data$params);
    }

    public function 
    post($url$data = [])//Update
    {
    return 
    $this->call($urlself::METHOD_POST$data, []);
    }

    public function 
    put($url$data = [], $params = [])//Insert
    {
    return 
    $this->call($urlself::METHOD_PUT$data$params);
    }

    public function 
    delete($url$params = [])//Delete
    {
    return 
    $this->call($urlself::METHOD_DELETE, [], $params);
    }

    protected function 
    prepareResponse($result$httpCode)
    {

    if (
    null === $decodedResult json_decode($resulttrue)) {
    echo 
    "<h2>HTTP: $httpCode</h2>";
    $jsonErrors = [
    JSON_ERROR_NONE => 'No error occurred',
    JSON_ERROR_DEPTH => 'The maximum stack depth has been reached',
    JSON_ERROR_CTRL_CHAR => 'Control character issue, maybe wrong encoded',
    JSON_ERROR_SYNTAX => 'Syntaxerror',
    ];
    echo 
    '<h2>Could not decode json</h2>';
    echo 
    'json_last_error: ' $jsonErrors[json_last_error()];
    echo 
    'Raw:';
    echo 
    '<pre>' print_r($resulttrue) . '</pre>';

    return;
    }
    if (!isset(
    $decodedResult['success'])) {
    echo 
    "<h2>HTTP: $httpCode</h2>";
    echo 
    'Invalid Response';

    return;
    }
    if (!
    $decodedResult['success']) {
    echo 
    "<h2>HTTP: $httpCode</h2>";
    echo 
    '<h2>No Success</h2>';
    echo 
    '<p>' $decodedResult['message'] . '</p>';
    if (
    array_key_exists('errors'$decodedResult) && is_array($decodedResult['errors'])) {
    echo 
    '<p>' join('</p><p>'$decodedResult['errors']) . '</p>';
    }

    return;
    }

    return 
    $decodedResult;
    }
    }          
    :)
     
  2. Habe ich auch noch nicht gemacht.

    Aber wenn du mi den Begriffen: Power Query web api key googlest, findest du einige Hinweise.
     
  3. ...ja, das stimmt. Da kommen tatsächlich einige Hinweise, die ich ich auch schon intensiv versucht habe zu nutzten - aber zu einem Ergebnis komme ich leider immer noch nicht.... *frown.gif*
     
  4. API Excel Zugriff (via Daten abrufen)

    Hallo cav01,

    ich habe leider keinerlei Erfahrung mit PQ, aber aus deinem PHP-Beispiel geht hervor, daß
    eine "CURLAUTH_BASIC => HTTP Basic authentication" im Header erwartet wird.

    In diesem Thread wird ein bißchen das Thema behandelt und es werden wohl auch mehrer Beispiele gezeigt, wie mit PM der Header eingefügt werden kann.
    https://community.powerbi.com/t5/Pow...in/td-p/105202

    Vielleicht ist das ja ein erster Ansatz?

    Ulrich
     
    knobbi38, 12. August 2020
    #4
Thema:

API Excel Zugriff (via Daten abrufen)

Die Seite wird geladen...
  1. API Excel Zugriff (via Daten abrufen) - Similar Threads - API Excel Zugriff

  2. Seit O365 Problem mit Callback-Funktion

    in Microsoft Excel Hilfe
    Seit O365 Problem mit Callback-Funktion: Hallo Excel-Gemeinde, seit der Umstellung auf das aktuelle Excel 365 funktioniert unten angegebener Code nicht mehr, sobald die Callback-Funktion in ein eigenes Modul gepackt wird. Der Code (es...
  3. Aktuelle Daten aus dem Internet per API/VBA in Excel ziehen

    in Microsoft Excel Hilfe
    Aktuelle Daten aus dem Internet per API/VBA in Excel ziehen: Hallo liebe ms-office-Community *Smilie ich bin neu hier und freue mich über die hoffentlich erhaltende Hilfe *grins meine VBA- Kenntnisse würde ich als "sehr gering" bezeichnen - Ich hoffe...
  4. Daten von Website (mit API?) in Excel einfügen und aktualisieren

    in Microsoft Excel Hilfe
    Daten von Website (mit API?) in Excel einfügen und aktualisieren: hallo zusammen bin neu hier & gespannt ob mir hier jmd. helfen kann, falls ja kann gut sein das später ein kleiner Bezahlauftrag folgt... Ich möchte vorerst einige Daten von www.bitstamp.net in...
  5. Userform mit Icon (API)

    in Microsoft Excel Hilfe
    Userform mit Icon (API): Hi zusammen und frohe Ostern, habe mir unter folgendem Link http://www.vb4fun.de/cgi-bin/loadfra.../tip0221.shtml die Datei runtergeladen, mit der man in der Userform ein Icon mittels API...
  6. REST API ansprechen + JSON

    in Microsoft Access Hilfe
    REST API ansprechen + JSON: Hallo zusammen ich stehe hier vor der Aufgabe eine im WEB befindliche RESTful API anzusprechen und jeweils den Rückgabewert auszuwerten. als Austauschformat wird JSON verwendet. ich habe schon...
  7. MS Project - API Aufrufe

    in Sonstiges
    MS Project - API Aufrufe: Hallo, ich hab hier das MS Project von MS Office 16 im Einsatz und muss dort in Zukunft ein paar Sachen pflegen. Im Projektplan gibt es einen für jeden Vorgang einen Hyperlink zu einem Task in...
  8. Graph Api Berechtigungs Probleme beim Abrufen der Emailadressen aller Nutzer

    in Microsoft Teams Hilfe
    Graph Api Berechtigungs Probleme beim Abrufen der Emailadressen aller Nutzer: Guten Tag, ich arbeite momentan an einer Microsoft Teams Integrierung und versuche über den https://graph.microsoft.com/v1.0/users?$select=id,mail Endpunkt die Emailadressen der Nutzer...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden