node.js https.get() feuert Fehler ECONNREFUSED
Einer der Schritte des OAuth-Tanz beinhaltet den Austausch von einem code erhielt über einen Rückruf für einen access-token. Speziell für Facebook-server Seite auth, die folgenden https-GET-Anfrage liefert den Zugangs-code in der Antwort der Körper:
https://graph.facebook.com/oauth/access_token?
client_id=YOUR_APP_ID
&redirect_uri=YOUR_REDIRECT_URI
&client_secret=YOUR_APP_SECRET
&code=CODE_GENERATED_BY_FACEBOOK
Node.js feuert ein Fehler beim Versuch, eine Verbindung damit:
https.get( /**String | Object*/ options, function ( res ) {
res.setEncoding( 'utf8' );
res.on( 'data', function ( data ) {
//parse response body
} );
} ).on( 'error',function ( e ) {
Log.w( TAG, "Error requesting access_token", e );
} ).end();
Der Fehler ist:
{ code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect' }
Funktioniert der Aufruf problemlos mit wget/curl, so ist es nicht eine Frage des ausgehenden firewall-Regeln oder so. Was ist falsch mit dem Knoten anfordern?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellt sich heraus, das Problem war das https-Zertifikat-Verifizierung Fehler. Von Knoten ist https.request() docs:
Sofern nicht ausdrücklich vorgesehen, http[s].[Anfrage|bekommen] wird die globalen Agenten, die ignoriert tls.connect() Optionen, einschließlich der rejectUnauthorized Flagge. Der Aufruf von get (oder Anfrage) muss geändert werden, also: