abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

REST-API - CD Secondary Flow

TinTin82
Einsteiger
1 Beiträge

Hi,

ich versuche mich momentan über die comdirect REST Api mit meinem Konto zu verbinden in der Hoffnung einiges automatisieren zu können.

Folgende Schritte funktionieren soweit ich das absehe:

  1. 2.1 OAuth2 Resource Owner Password Credentials Flow
  2. 2.2 Abruf Session-Status
  3. 2.3 Anlage Validierung einer Session-TAN
  4. 2.4 Aktivierung einer Session-TAN

Beim Schritt: "2.5 CD Secondary Flow" bekomme ich einen Fehler zurück:
{"error":"invalid_client","error_description":"Bad client credentials"}

 

Ich verwende libCURL und baue mir den POST wie folgt zusammen:

 

 

/**
** ===================================================
** URL: https://api.comdirect.de/oauth/token
** HTTP-Method: POST
** ===================================================
***/
curl_easy_setopt(curl, CURLOPT_URL, "https://api.comdirect.de/oauth/token");
/* Now specify we want to POST data */
curl_easy_setopt(curl, CURLOPT_POST, 1L);
/* provide a buffer to store errors in */
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);



/**
** ===================================================
** HEADER
** ===================================================
***/
/* Create header according to comdirect api description */
list = curl_slist_append(list, "Accept: application/json");
list = curl_slist_append(list, "Content-Type: application/x-www-form-urlencoded");

curl_easy_setopt(curl, CURLOPT_HTTPHEADER, list);

            /**
            ** ===================================================
            ** DATA
            ** ===================================================
            ***/
            /* Create data according to comdirect api description */
            std::string str_DATA;
            char *escaped_field = curl_easy_escape(NULL, "User_********************************", 0);
            str_DATA+= std::string("client_id=")+std::string(escaped_field)+std::string("&");
            curl_free(escaped_field);

            escaped_field = curl_easy_escape(NULL, "********************************", 0);
            str_DATA+= std::string("client_secret=")+std::string(escaped_field)+std::string("&");
            curl_free(escaped_field);

            escaped_field = curl_easy_escape(NULL, "cd_secondary", 0);
            str_DATA+= std::string("grant_type=")+std::string(escaped_field)+std::string("&");
            curl_free(escaped_field);

            escaped_field = curl_easy_escape(NULL, "*****************", 0);
            str_DATA+= std::string("token=")+std::string(escaped_field);
            curl_free(escaped_field);
            curl_easy_setopt(curl, CURLOPT_POSTFIELDS, str_DATA.c_str());


            res = curl_easy_perform(curl);

 

 

Den Wert für das "Access-Token" habe ich aus dem:
2.1 OAuth2 Resource Owner Password Credentials Flow

Die beiden werte "client_id" und "client_secret" habe ich gleich wie beim 
2.1 OAuth2 Resource Owner Password Credentials Flow
gesetzt und von comdirect erhalten beim anmelden für die API.

Kann mir jemand sagen was ich bei diesem POST falsch mache?

Viele Grüße,
TinTin

0 ANTWORTEN
Kurz zustimmen zu Cookies und vergleichbaren Webtechnologien
Um Ihnen insbesondere ein optimales Website-Erlebnis zu bieten, werden mit Ihrer Einwilligung Cookies und Webtechnologien zu Funktions-, Statistik-, Komfort- und Marketingzwecken sowie zur Darstellung personalisierter Inhalte verwendet. Im Einzelnen sind dies (Details unter nachfolgenden Links):

Adobe Analytics: Reichweitenmessung zur Verbesserung des Nutzungserlebnisses der Website sowie Optimierung der Marketingkampagnen.

Adform: Aussteuerung und Optimierung von Werbemitteln, die durch Kunden von Adform geschaltet werden.

Adition: Aussteuerung und Optimierung von Werbemitteln, die durch Kunden von Adition geschaltet werden.

comdirect-Surfertracking: Optimierung und Aussteuerung nutzerbezogener Werbung, die von comdirect auf Drittseiten geschaltet wird

Community Umfrage: Aussteuerung von Umfragen für Besucher der comdirect community.

DoubleClick Floodlight: Analyse des Nutzerverhaltens zur Optimierung des Nutzungserlebnisses.

Meta: Nachverfolgung von Verhalten nach Klick auf Meta-Werbeanzeigen und Personalisierung von Meta-Werbung.

Google Ads: Nachverfolgung von Verhalten nach Klick auf Google-Werbeanzeigen und Personalisierung von Google-Werbung.

Personalisierte Angebote: Aussteuerung und Optimierung von personalisierten Werbeflächen im persönlichen Bereich.

Smartadverser: Aussteuerung und Optimierung von Werbemitteln, die durch Kunden von Smartadverser geschaltet werden.

Wenn Sie mindestens 16 Jahre alt sind, können Sie durch Klicken auf „Alle akzeptieren“ bestätigen, dass wir diese Webtechnologien verwenden dürfen. Anderenfalls klicken Sie auf „Alle verweigern“. Durch Klicken auf „Einzeln einstellen“ können Sie jederzeit Ihre Einwilligung widerrufen oder Ihre Einwilligungseinstellungen anpassen.

Hier finden Sie weitere Informationen zum Datenschutz und unser Impressum.