Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在带有node.js的express.js上使用twitter api显示最近20条推文?_Javascript_Api_Express_Twitter - Fatal编程技术网

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

Javascript 如何在带有node.js的express.js上使用twitter api显示最近20条推文?,javascript,api,express,twitter,Javascript,Api,Express,Twitter,我想使用Twitter API(),下面是我想添加的想法: app.js和package.json var express = require("express"), path = require("path"), http = require("http"), twitter = require("twitter"), app = express(); http.createServer(app).listen(3000); twitte

我想使用Twitter API(),下面是我想添加的想法:

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);
  }
});

我会尽量简短,现在开始:

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

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

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

安装模块:
npm安装--保存twitter

转到Twitter并创建你的应用程序。获取必要的密钥:使用者密钥、使用者密钥、访问令牌密钥和访问令牌密钥

在这一点之后,我想分享实际的代码,而不是解释该做什么

下面是/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>
    {{{#每条推特}
  • {{this.text}}
  • {{/每个}}

当您保存它们并运行
npm start
时,您可以在

如何更改我正在使用的ajax的twitter句柄get var twitterhandle=$('#twitterUsername').val();$上看到结果。ajax({type:'GET',data:{text:twitterhandle},url:'/statuses/user_timeline',});请分享我想在/routes/index.js中添加的内容检查这部分:
{screen_name:'nodejs',count:20}
您也可以从Ahh获得更多信息,好的,那么,让我们这样做:在get方法中将
'/'
参数替换为
'/:handle'
。并将
screen_name:'nodejs'
替换为
screen_name:req.params.handle | | nodejs'
。现在你可以像以前一样使用它,它将返回给定用户的最后20条tweet,或者如果你不提供任何参数,它将像以前一样工作。在看到完整范围之前,我不能告诉任何事情。例如,我不知道你是如何得到
text
值的。只是一个小提示,请将答案标记为已接受答案以帮助他人。在路由器文件中,将get方法的第一个参数更改为
/statuses/user\u timeline
(与您使用$.ajax调用的url相同)。通过此更改,您可以从请求中获取参数,因此只需将我上面键入的
req.param.handle
部分替换为
req.query.text
(来自$.ajax的数据对象)。