如何使用node.js在express.js上使用twitter api显示最近20条推文?

时间:2015-09-08 06:13:58

标签: javascript api express twitter

我想使用Twitter API(https://www.npmjs.com/package/twitter),以下是我想添加的内容:

app.js& package.json

var express = require("express"),
path        = require("path"),
http        = require("http"),
twitter     = require("twitter"),
app         = express();

http.createServer(app).listen(3000);

twitter_data.js

var Twitter = require('twitter');
var client = new Twitter({
  consumer_key: '',
  consumer_secret: '',
  access_token_key: '',
  access_token_secret: ''
});

var params = {screen_name: 'nodejs'};

client.get('statuses/user_timeline', params, function(error, tweets, response){
  if (!error) {
    console.log(tweets);
  }
});

1 个答案:

答案 0 :(得分:15)

我会尽量保持简短,我们走了:

首先安装express-generator模块:npm install -g express-generator

运行express --hbs(你可以选择Jade或其他任何东西,但我更喜欢Handlebars,所以我会继续这样做)

转到该文件夹​​并安装依赖项:npm install

安装twitter模块:npm install --save twitter

转到Twitter的Application Management Page并创建您的应用。获取必要的密钥:consumer_key,consumer_secret,access_token_key和access_token_secret。

在此之后,我想分享实际代码,而不是解释做什么

这是/routes/index.js文件:

var express = require('express');
var Twitter = require('twitter');

var router = express.Router(); 
var client = new Twitter({
  consumer_key: 'XXX',
  consumer_secret: 'XXX',
  access_token_key: 'XXX',
  access_token_secret: 'XXX'
});

router.get('/', function(req, res, next) {
  // https://dev.twitter.com/rest/reference/get/statuses/user_timeline
  client.get('statuses/user_timeline', { screen_name: 'nodejs', count: 20 }, function(error, tweets, response) {
    if (!error) {
      res.status(200).render('index', { title: 'Express', tweets: tweets });
    }
    else {
      res.status(500).json({ error: error });
    }
  });
});

module.exports = router;

这是/views/index.hbs文件:

<ul>
  {{#each tweets }}
  <li>{{ this.text }}</li>
  {{/each }}
</ul>

当您全部保存并运行npm start时,您可以在http://localhost:3000

看到结果