Last active
August 27, 2017 17:37
-
-
Save richie3366/50457da7fd380342e2f8 to your computer and use it in GitHub Desktop.
Bot Twitter très simple sous NodeJS
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 | |
client.stream('user', {'with': 'user'}, function(stream) { // On ouvre un stream sur les tweets adressés au bot | |
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... | |
status: "Hello @"+data.user.screen_name, // Le contenu du tweet... | |
in_reply_to_status_id: data.id_str // le tweet auquel je réponds | |
}; // (notez qu'une réponse valide est une réponse qui mentionne l'auteur du tweet, sauf self-answer) | |
client.post('statuses/update', postData, function(error, tweet, response){ | |
if(error) // Si on a une erreur, on la log... | |
console.log('error when sending tweet', error); | |
else // Sinon bah, on log quand même ce qu'on a envoyé :p | |
console.log('tweet ->', tweet.user.screen_name, tweet.text); | |
}); | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment