2017-04-07 6 views
0

Ich versuche, ein Authentifizierungstoken von einer API zu bekommen. die Anforderung sollte aussehen wiePost Anruf von Nodejs

POST /oauth2/token HTTP/1.1 
Host: mysageone.ca.sageone.com 

client_id=4b64axxxxxxxxxx00710& 
client_secret=iNumzTxxxxxxxxxxhVHstrqWesH8tm9& 
code=12a0f9c12cxxxxxxxxxxxxxxx92a48cc1f237ead& 
grant_type=authorization_code& 
redirect_uri=https://myapp.com/auth/callback 

Mein aktueller Code hält mir geben Status 400. Ich habe versucht, die Header zu ändern, aber es funktioniert nicht. Ich habe auch versucht, die erforderlichen Parameter Teil des Pfades mit?.

const http = require('http'); 
    var options = { 
     hostname: 'app.sageone.com', 
     path: '/oauth2/token', 
     method: 'POST', 
     headers: { 
     "client_id":"xxxxx", 
     "client_secret":"xxxxx", 
     "code":"xxxxxx", 
     "grant_type":"authorization_code", 
     "redirect_uri":"https://some link" 
     } 
    }; 
    console.log('in users file point 2'); 
    var req1 = http.request(options, (res1) => { 
     console.log('statusCode:', res1.statusCode); 
     console.log('headers:', res1.headers); 
     console.log('message',res1.statusMessage); 
     res1.on('data', (d) => { 
     res.json(d); 
     }); 
    }); 

    req1.on('error', (e) => { 
     console.error('error starts here',e); 
    }); 
    req1.end(); 
}); 
+0

Vermutlich wird von Ihrer Authentifizierungs-API erwartet, dass Sie sie über https aufrufen? Wenn dies der Fall ist, benötigen Sie das Paket ['https'] (https://nodejs.org/api/https.html) und nicht das' http'. – dan

Antwort

0

scheint mir, wie Ihr Problem nicht mit Node.js ist, aber mit der Nutzung von Sage One api. Dies ist the relevant documentation das könnte Ihr Problem lösen.

Von einem schnellen Blick sieht es so aus, als ob Sie eine GET nicht eine POST senden möchten, und Sie sollten diese Parameter in der URL senden. Hier ist die Beispiel-URL geben sie:

https://www.sageone.com/oauth2/auth?response_type=code&client_id=4b64axxxxxxxxxx00710&redirect_uri=https://myapp.com/auth/callback & scope = FULL_ACCESS

ich vorher noch nie Sage One benutzt habe, aber das würde meine Erfahrungen mit anderem OAuth APIs entspricht.

+0

Ich habe den 1. Schritt bereits abgeschlossen und habe den Code. Ich habe versucht, den Authentifizierungs-Token zu erhalten, der in der Dokumentation erwähnt wird, in der ich feststecke. – asis8888