Skip to content

Instantly share code, notes, and snippets.

@samuelcouch
Created September 11, 2017 20:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save samuelcouch/3ac4f68f07fac39dae47b49c4fa98639 to your computer and use it in GitHub Desktop.
Save samuelcouch/3ac4f68f07fac39dae47b49c4fa98639 to your computer and use it in GitHub Desktop.
const Twit = require('twit')
exports.main = (args) => {
let twitter_consumer_key = args.twitter_consumer_key
let twitter_consumer_secret = args.twitter_consumer_secret
let twitter_access_token = args.twitter_access_token
let twitter_access_token_secret = args.twitter_access_token_secret
// If the required tokens aren't received end all operations
if (!twitter_consumer_key || !twitter_consumer_secret ||
!twitter_access_token || !twitter_access_token_secret) {
return Promise.reject('All parameters required')
}
let T = new Twit({
consumer_key: twitter_consumer_key,
consumer_secret: twitter_consumer_secret,
access_token: twitter_access_token,
access_token_secret: twitter_access_token_secret,
timeout_ms: 60 * 1000
})
// Using promises we can string togetehr operations to search and then return the payload.
// Since the free teir of Watson Natural Language Understanding is 1,000/day requests,
// we limit the number of tweets to process to 40 an hour (40*25=960/day).
return T.get('search/tweets', { q: '$BTC', lang: 'en', result_type: 'recent', count: 40 })
.then(res => ({ tweets: res.data.statuses }))
.catch(err => ({ error: `There was an error getting tweets: ${err}` }))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment