J'ai un jeton support et j'essaie d'obtenir le scénario d'un utilisateur derrière un proxy avec le code suivant.Twitter 1.1 user_timline with Bearer Authorization renvoie 400 dans node.js
var parsedUrl = url.parse('https://api.twitter.com/1.1/statuses/user_timeline.json:443/?count=2&screen_name=twitterapi', true, true);
var options = {
'host': parsedUrl.host,
'path': parsedUrl.path,
'method': 'GET',
'headers': {
'Host': parsedUrl.host,
'Authorization': 'Bearer ' + settings.accessToken
}
};
var adapter = https;
if(settings.proxy)
{
options.host = settings.proxy;
options.port = settings.proxyPort;
options.path = parsedUrl.path;
options.headers['Proxy-Connection'] = 'Keep-Alive';
adapter = http;
}
var body = '';
var req = adapter.request(options, function(res) {
res.on('data', function (chunk) {
body += chunk;
});
res.on('end', function() {
try
{
var result = JSON.parse(body);
}
catch(ex)
{
//...
}
});
});
req.end();
Cette requête renvoie toujours un 400 sans corps ou message d'erreur. Si essayer l'acces avec cUrl cela fonctionne comme un charme. Je récupère le jeton porteur de la même manière. Pourquoi Twitter répond-il avec un 400?
curl --get 'https://api.twitter.com/1.1/statuses/user_timeline.json' --data 'count=2&screen_name=twitterapi' --header 'Authorization: Bearer <token>' --verbose --proxy http://proxy.example.com:8080
Qu'est-ce que cUrl différemment?
EDIT: Le code d'état n'est PAS 404 mais 400! Pardon.
EDIT2: Lorsque je quitte l'en-tête Authorization, j'en reçois toujours 400 même si je m'attends à un message d'échec d'autorisation. Y a-t-il un besoin particulier?
EDIT3: Maintenant, le code d'état est 401. Quelque chose qui sent mauvais passe :(