簡體   English   中英

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

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

我想使用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);
  }
});

我會盡量保持簡短,我們走了:

首先安裝express-generator模塊: npm install -g express-generator

運行express --hbs (你可以選擇Jade或其他任何東西,但我更喜歡Handlebars,所以我會繼續這樣做)

轉到該文件夾​​並安裝依賴項: npm install

安裝twitter模塊: 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.hbs文件:

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

當你全部保存並運行npm start ,你可以在http:// localhost:3000上看到結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM