如何在express.js与node.js上显示twitter api的最近20条推文

How to show last 20 tweets with twitter api on express.js with node.js?

本文关键字:js 最近 api 20条 twitter express node 显示      更新时间:2023-09-26

我想使用Twitter API (https://www.npmjs.com/package/twitter),这里是我想添加的想法:

app.js,包中。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);
  }
});

我会尽量保持简短,开始:

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

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

进入文件夹并安装依赖项:npm install

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

转到Twitter的应用程序管理页面并创建您的应用程序。获取必要的密钥: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。哈佛商学院文件:

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

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

看到结果