Created
June 21, 2015 12:24
-
-
Save richie3366/6df9db927b810d947f9a to your computer and use it in GitHub Desktop.
Bot Twitter d'auto-fav de tweets sur base de mots clés
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var twitter = require('twitter'); // npm install twitter | |
var tokens = require('./tokens.json'); // Tokens stockés en JSON, cf. lignes 7 à 10 pour la structure de l'objet | |
var MAIN_ACCOUNT = "NomDuCompte"; // Nom du compte de votre bot | |
// Configuration/construction de l'interface client | |
var client = new twitter({ // J'aurais pu juste mettre "var client = new twitter(tokens);" | |
consumer_key: tokens.consumer_key, // Clé API de l'app | |
consumer_secret: tokens.consumer_secret, // Clé secrete app | |
access_token_key: tokens.access_token_key, // Clé OAuth associée au compte du bot via l'app | |
access_token_secret: tokens.access_token_secret // Clé secrète OAuth associée au compte du bot via l'app | |
}); // Pour créer votre app : apps.twitter.com | |
// Pour générer les tokens liés au compte du bot : http://tiny.cc/pinauth | |
// Pour plus d'infos sur le paramètre track : http://tiny.cc/trackparam | |
client.stream('statuses/filter', {'track': '#PremierHash,#OuSecondHash'}, function(stream) { // mots &/ou #HT (séparés par ",") | |
stream.on('data', function(data) { // Quand on a des données qui arrivent (i.e. un tweet) | |
// On évite de prendre les RTs, les contenus n'étant pas des tweets ou nos propres tweets : | |
if(!data.text || data.retweeted_status || !data.user || data.user.screen_name === MAIN_ACCOUNT) | |
return; | |
console.log('tweet <-', data.user.screen_name, data.text); // Un petit log ne fait jamais de mal | |
var postData = { // Objet des données post qu'on va envoyer à l'API de Twitter pour répondre au tweet... | |
id: data.id_str // l'ID du tweet à RT | |
}; // (notez que le fav est soumis à des limitations, l'automatisation est quelque chose à modérer un maximum :p) | |
client.post('favorites/create', postData, function(error, tweet, response){ | |
if(error) // Si on a une erreur, on la log... | |
console.log('error when faving tweet', error); | |
else // Sinon bah, on log quand même ce qu'on a fav :p | |
console.log('faved ->', tweet.user.screen_name, tweet.text); | |
}); | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment