2017-10-03 1 views
0

Je veux utiliser Newsletter2Go API. J'ai téléchargé un exemple C#, ajouté la bibliothèque compilée et essayé de commencer à recevoir un jeton d'accès. Je suis novice en programmation avec une API REST mais, pour autant que je sache, je dois me connecter avec ma clé API et mes informations d'identification pour recevoir le jeton d'accès. Avec le jeton, je peux faire d'autres opérations.Reçoit le jeton d'accès d'api avec oauth dans C#

Ceci est le code pour recevoir le jeton.

 //////// Configure HTTP basic authorization: Basic 
     Configuration.Default.Username = ""; 
     Configuration.Default.Password = ""; 

     var apiInstance = new AuthorizationApi(); 
     var grantType = ""; // string | grant_type (default to https://nl2go.com/jwt) 
     var username = ""; // string | username. Required for grant_type https://nl2go.com/jwt (optional) 
     var password = ""; // string | password. Required for grant_type https://nl2go.com/jwt (optional) 
     var refreshToken = ""; // string | refresh_token. Required for grant_type https://nl2go.com/jwt_refresh (optional) 

     try 
     { 
      // Endpoint for retrieving a token 
      Token result = apiInstance.GetToken(grantType, username, password, refreshToken); 
      Debug.WriteLine(result); 
     } 
     catch (Exception ex) 
     { 
      Debug.Print("Exception when calling AuthorizationApi.GetToken: " + ex.Message); 
     } 

Je reçois l'erreur.

Exception lors de l'appel AuthorizationApi.GetToken:

Erreur appelant GetToken: { "erreur": "invalid_client", "ERROR_DESCRIPTION": "Les informations d'identification du client ne sont pas valides"}

Je don Je ne comprends pas comment je peux passer l'api-clé à l'API. Dans les docs ils écrivent ceci mais il n'y a pas d'exemple dans C# dans les docs.

...and add an Authorization header with your auth key: 
xhr.setRequestHeader("Authorization", "Basic " + btoa("xhr5n6xf_Rtguwv_jzr1d3_LTshikn4_0dtesdahNvp1:Kqf2Hs#Wwazl"); 
send the request: 
xhr.send(JSON.stringify(params)); 

Donc, des idées ce qui manque ici? Merci d'avance.

Répondre

2

Vous devez transmettre la clé API dans l'en-tête de la demande. Vous pouvez effectuer les opérations suivantes à l'aide RestSharp:

var client = new RestClient("https://api.newsletter2go.com/oauth/v2/token"); 
var request = new RestRequest(Method.POST); 
request.AddHeader("Authorization", "Basic xhr5n6xf_Rtguwv_jzr1d3_LTshikn4_0dtesdahNvp1:Kqf2Hs#Wwazl"); 
request.AddHeader("content-type", "application/x-www-form-urlencoded"); 
request.AddParameter("application/x-www-form-urlencoded", "grant_type=https://nl2go.com/jwt&username={username}&password={password}", ParameterType.RequestBody); 
IRestResponse response = client.Execute(request); 

Du corps de réponse, vous pouvez alors obtenir votre jeton d'accès.