Advertisement
Guest User

callback_test

a guest
Jul 5th, 2016
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. require('dotenv').config({silent: true});
  2.  
  3. var Twitter = require('twitter-node-client').Twitter;
  4. var watson = require('watson-developer-cloud');
  5.  
  6. var twitter = new Twitter({
  7. "consumerKey": process.env.TWITTER_KEY,
  8. "consumerSecret": process.env.TWITTER_SECRET,
  9. "accessToken": process.env.TWITTER_TOKEN,
  10. "accessTokenSecret": process.env.TWITTER_TOKEN_SECRET,
  11. "callBackUrl": process.env.TWITTER_CALLBACK
  12. });
  13.  
  14.  
  15. var personality_insights = watson.personality_insights({
  16. url: 'https://gateway.watsonplatform.net/personality-insights/api',
  17. username: process.env.PERSONALITY_INSIGHTS_USERNAME,
  18. password: process.env.PERSONALITY_INSIGHTS_PASSWORD,
  19. version: 'v2'
  20. });
  21.  
  22.  
  23. twitter.getUserTimeline({ screen_name: 'adele', count: '300'}, handleError, getPersonalityProfile);
  24.  
  25.  
  26. //Callback functions
  27. var handleError = function (err, response, body) {
  28. console.log('ERROR [%s]', err);
  29. return new Error(err);
  30. };
  31.  
  32. function getPersonalityProfile (tweets) {
  33.  
  34. personality_insights.profile(createContentItemsJson(tweets), function(error, response) {
  35. if (error)
  36. console.log('error:', error);
  37. else
  38. console.log(JSON.stringify(response, null, 2));
  39. }
  40. );
  41. };
  42.  
  43. function createContentItemsJson(tweets){
  44. var jsonObj = JSON.parse(tweets);
  45. //console.log('twitter_helper: success function called with data.');
  46.  
  47. var keys = Object.keys(jsonObj);
  48.  
  49. var contentItemsJson = {
  50. "contentItems":[]
  51. };
  52.  
  53.  
  54. for (var i = 0; i < keys.length; i++) {
  55. tweet = jsonObj[i];
  56. var contentItem = {
  57. 'content': tweet.text.replace(/[^(\x20-\x7F)]*/g, ""),
  58. 'contenttype': 'text/plain',
  59. 'created': (new Date(tweet.created_at)).getTime()/1000.0,
  60. 'id': tweet.user.id,
  61. 'language': tweet.lang,
  62. 'reply': (tweet.in_reply_to_screen_name != null).toString(),
  63. 'forward': (typeof tweet.retweeted_status != 'undefined').toString()
  64. }
  65. contentItemsJson.contentItems.push(contentItem);
  66. }
  67.  
  68. return contentItemsJson;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement