I usually keep a template at my disposal for these hunts. If you haven't read my previous blog post already, I highly recommend you do so. It gives a nice introduction to creating your first app on Twitter and your getting your first bot up and running.
Before starting to code, I first spent some time examining what keywords/phrases people used when discussing Hey. I kept track of those keywords and realized the most popular ones were the following:
['hey invite', 'hey code', '#hey', 'hey.com']
I then discovered that Hey invite codes were 7 character alphanumeric strings, so I created a regex pattern that can be used to match possible codes in tweets:
/\b[A-z0-9]{7}\b/g
Obviously this isn't perfect; if there are words that are 7 characters, it will match those unwanted words. I was fine with some manual labor.
After this research phase, I decided to whip out my Twitter-bot-invite-code-hunter (yes, this is what I call it). It utilizes the Twit library to use Twitter's API with ease. The initial setup includes importing the library and setting up the keys for your app:
var Twit = require('twit');
var T = new Twit({
consumer_key: '...',
consumer_secret: '...',
access_token: '...',
access_token_secret: '...',
})
After that, we can use streams to listen to new tweets while tracking specific keywords, namely, the ones I mentioned above:
var stream = T.stream('statuses/filter', { track: ['hey invite', 'hey code', '#hey', 'hey.com'] });
After this is done, we listen to this stream on every new tweet as follows:
stream.on('tweet', function (tweet) {
})
Now we have a tweet
object. To learn more about what attributes these objects have, I recommend you check out Twitter's official documentation on Tweet objects at https://developer.twitter.com/en/docs/tweets/data-dictionary/overview/tweet-object.
It turns out tweet
has an attribute called text, which as the name suggests, contains the text of the tweet. Now, we can match it against our regex pattern as follows:
match_res = tweet.text.match(/\b[A-z0-9]{7}\b/g)
match_res
now contains the words that match the criteria we need. We can then do the following:
console.log(tweet.text)
if (match_res != null) {
console.log("IMPORTNAT: " + match_res)
console.log("")
}
console.log("")
This will check if any words matched, and if they did then it'll print them out. Aaaand that's pretty much it. The bot is ready to run.
🤑 Was it successful?
I was really hoping it would be as easy as getting those Fortnite and CoD codes (those took less than 5 minutes). Sadly, I waited for over 2 hours for this to work because the codes started pouring out when new Hey invites were sent out.
After about 2 hours of waiting I saw someone who tweeted a code, I was really excited so I quickly opened Hey and put in the code and it worked!!
Comments
Post a Comment