A autenticação somente do aplicativo permite que o aplicativo emita solicitações para a API do Twitter sem ter que se dar ao trabalho de obter a permissão do usuário. Aqui estão os documentos:
https://dev.twitter.com/docs/auth/application-only-auth
Precisaremos usar o protocolo OAuth2 para fazer isso e, felizmente, há um pacote Node para este trabalho: oauth
Primeiro, vamos querer instalar o pacote oauth:
npm install oauth --save
E então exigir:
var OAuth2 = require('OAuth').OAuth2;
Agora podemos usar o objeto OAuth2 para buscar um token de acesso em nosso nome:
var oauth2 = new OAuth2(KEY, 'SECRET', 'https://api.twitter.com/', null, 'oauth2/token', null);
oauth2.getOAuthAccessToken('', {
'grant_type': 'client_credentials'
}, function (e, access_token) {
console.log(access_token); //string that we can use to authenticate request
});
O token é colocado nos cabeçalhos de nossa solicitação HTTPS:
var options = {
hostname: 'api.twitter.com',
path: '/1.1/statuses/user_timeline.json?screen_name=mostlyharmlessd',
headers: {
Authorization: 'Bearer ' + access_token
}
};
Finalmente é hora de fazer nossa solicitação usando https :
https.get(options, function(result){
result.setEncoding('utf8');
result.on('data', function(data){
console.log(data); //the response!
});
});
Porém, não é tão simples assim, os dados voltam em partes. Você precisará juntar todos eles antes de analisar a resposta:
https.get(options, function(result){
var buffer = '';
result.setEncoding('utf8');
result.on('data', function(data){
buffer += data;
});
result.on('end', function(){
var tweets = JSON.parse(buffer);
console.log(tweets); // the tweets!
});
});
FEITO!
Você pode ver a essência de todo este snippet de código aqui: https://gist.github.com/Dakuan/5899971