2017-04-27 106 views
0

我试图通过Twitch API的POST请求获取访问令牌,但我的http.request永远不会执行(我不认为),我找不出原因。Twitch OAuth2令牌的POST请求

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); 
}); 

PS为简洁起见,我省略了一些代码,但我成功取回了授权码。

回答

0

我解决了我的问题。我没有写data身体。

... 
    req.write(data); 
    req.end(); 

}); 
... 
相关问题