Een twitterbot in minder dan 30 minuten

Je kent ze wel, Twitteraccounts die je binnen de seconde antwoorden, als je over een bepaald onderwerp tweet. Ik ben gaan uitzoeken hoe je dit zelf kan doen.

Je kent ze wel, Twitteraccounts die je binnen de seconde antwoorden, retweeten, liken of volgen als je over een bepaald onderwerp tweet. (Probeer maar eens Justin Bieber, SEO of startup.) Op een voetballuwe zondagnamiddag ben ik gaan uitzoeken hoe je dit zelf kan doen. Het blijkt zelfs vrij simpel te zijn.

Ik heb de tutorial van Daniel Shiffman gevolgd. Hij legt je in vrij klare taal uit wat Node.js, NPM en API’s zijn en helpt je van A-Z met het installeren, testen en hosten van je bot.

Benodigdheden

  •  Node.js
  • twit, een Twitter API Client voor node Hierdoor kan je gewoon vanuit node de Twitter API aanspreken.
  • Heroku om je bot te hosten

Workflow

Ik wou een Twitterbot maken die mensen verbetert als ze ‘weeral’ tweeten in plaats van ‘alweer’. I know, grammar nazi much. Hoe ben ik te werk gegaan?

1. De bot luistert naar alle nieuwe tweets en zoekt naar Tweets die het woord weeral vermelden.
2. Telkens er zo’n Tweet passeert, krijg je van Twitter een JSON object met alle informatie over die tweet.
3. Uit dat Object vis je dan de username en de tweet ID.
4. Stel je Tweet op met de info die je net hebt verzameld.
5. Versturen.

Shit to think about

Code uitleggen laat ik aan Daniel over, ik ga het vooral hebben over problemen die ik moest oplossen om mijn bot te doen werken.
Ik merkte dankzij `console.log` dat mijn Bot ook wou reageren op de tweets die hij (Zij? Het?) zelf stuurde. Same thing voor retweets en quotes.
Na wat probeersels (lees: Zelf tweets met weeral online zetten en terug verwijderen) ben in op het volgende uitgekomen:

// Checken of het een retweet is
if (tweet.retweeted_status != undefined){
    // Het is een retweet. Is mijn Bot misschien geretweet?
    if (tweet.retweeted_status.user.screen_name == "NAAM_VAN_JE_TWITTERBOT"){
        console.log("They retweeted you, don't respond.");
    }
}
// Checken of het een tweet van de bot of een antwoord op de bot is.
else if (tweet.user.screen_name == "NAAM_VAN_JE_TWITTERBOT" || tweet.in_reply_to_screen_name == "NAAM_VAN_JE_TWITTERBOT"){
    console.log("Don't respond to your own tweets, moron.");
}
else {
    console.log("Your time to shine, go get 'em tiger!")
}

Dingen waar je rekening mee moet houden als je met Twitter Bots begint:

  •  Zorg dat je Bot op een beleefde manier tweet.
  • Check regelmatig de antwoorden op je bot. Kan grappig zijn!
  • Pas op met Twitterbots gebruiken op een bestaande account, je kan geband worden als je het te hard uithangt.

Aan de slag!

Dit was in extreem grote lijnen hoe je een Twitter Bot maakt. Tijd om zelf aan de slag te gaan!
Zelf een bot gemaakt? Stuur hem door!

Mijn Bot: @AlweerWeeral
Vragen? Opmerkingen? Tweet me

UPDATE
De ‘pret’ was van korte duur, mijn Twitterbot is logischerwijs op non-actief gezet door Twitter.
People don’t like Grammar Nazi’s.

Leave a Reply

Your email address will not be published. Required fields are marked *