Estoy tratando de obtener un token de acceso a través de una solicitud POST de la API de Twitch, pero mi http.request nunca se ejecuta (no lo creo) y no puedo entender por qué.
var express = require('express'); var path = require('path'); var bodyParser = require('body-parser'); var fs = require('fs'); var https = require('https'); var querystring = require('querystring'); var authInfo = require('./authInfo.json'); app.get('/twitch/auth', function(req, res) { res.send("auth page"); var data = querystring.stringify({ client_id: authInfo.clientID, client_secret: authInfo.clientSecret, grant_type: "authorization_code", redirect_uri: authInfo.redirectURI, code: req.query.code, state: 12345 }); var options = { host: 'api.twitch.tv', port: 443, path: '/kraken/oauth2/token', method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Content-Length': Buffer.byteLength(data) } } var req = https.request(options, (res) => { console.log('statusCode:', res.statusCode); console.log('headers:', res.headers); res.on('data', (d) => { console.log(d); }); }); req.on('error', (e) => { console.log(e); }); req.end(); }); app.listen(port, function() { console.log('Point browser to: http://localhost:' + port); });PD He omitido algún código por brevedad pero obtengo un código de autorización con éxito.
Resolví mi problema. No estaba escribiendo data en el cuerpo.
... req.write(data); req.end(); }); ...