node.js - 如何将生成的身份验证令牌传递给 Twitters api
问题描述
我正在关注 Pluralsight 上的一个练习,它基本上相当于发送一个 get 请求,其中包含一个 Twitter 用户最近 10 条推文的查询并显示数据。
在 Twitter 开发门户上,我创建了我的应用程序并生成了我的项目令牌。但是对于我的生活,我无法找到如何使用 GET 请求发送令牌,以便我可以访问 API(否则你不能)
我在这里和谷歌搜索过,只找到了如何生成令牌。一些帮助将不胜感激。
var express = require('express');
var request = require('request');
var url = require('url');
var app = express();
app.get('/', function(req, res) {
res.sendFile(__dirname + '/views/index.html');
});
app.get('/tweets/:username', function(res, req){
var username = req.params.username;
options = {
protocol: 'http:',
host: 'api.twitter.com',
pathname: '/1/statuses/user_timeline.json',
query: { screen_name: username, count: 10},
}
var twitterURL = url.format(options);
request(twitterURL).pipe(response);
});
app.listen(8080);
编辑
所以这不起作用的原因是因为两个不同的问题。Twitter API 之一在过去几年中发生了变化,下面的代码示例不再遵循 Twitter api 标准。相反,我建议使用预先编写的模块,例如此处的模块;https://github.com/desmondmorris/node-twitter
第二个问题是,当我注册时,我没有使用真正的回调网站。我在本地开发,老实说,我认为这并不重要。事实证明确实如此。
我结束的代码;
// Imports
var express = require('express');
var request = require('request');
var url = require('url');
var twitter = require('twitter');
var config = require(__dirname + '/conf/config.js');
// Variables
//var twit = twitter(config);
var app = express();
var twit = new twitter({
consumer_key: '',
consumer_secret: '',
access_token_key: '',
access_token_secret: ''
});
// Routes
app.get('/', function(req, res) {
res.sendFile(__dirname + '/views/index.html');
});
app.get('/tweets/:username', function(req, response){
var username = req.params.username;
var params = {
screen_name: username,
count: 10
}
twit.get('statuses/user_timeline', params, function(err, tweets, res){
if(!err){
console.log(tweets);
}
else{
console.log(err);
}
});
});
app.listen(8080);
解决方案
尝试
var express = require('express');
var request = require('request');
var url = require('url');
var app = express();
app.get('/tweets/:username', function(req, res){
var username = req.params.username;
options = {
protocol: 'http:',
host: 'api.twitter.com',
pathname: '/1/statuses/user_timeline.json',
query: { screen_name: username, count: 10},
}
var twitterURL = url.format(options);
request(twitterURL).pipe(response=>res.send(response));//send response
});
app.get('/', function(req, res) {
res.sendFile(__dirname + '/views/index.html');
});
app.listen(8080);
推荐阅读
- javascript - 如何在javascript中计算文件中的函数数
- python - 使用 Scipy.optimize.curve_fit 拟合指数
- css - CSS使用名称从列表中隐藏项目
- c++ - 如何将字符串放入 std::vector 中
? - javascript - element.appendChild(TemplateNodeCloned) 不追加
- python - Mongodb查询以查找值在对象列表中的所有键
- python - 如何在 Tensorflow 中复制 PyTorch 的 nn.functional.unfold 函数?
- c# - 确保插入的项目不超过 x 个
- r - 如何将公式作为字符串传递?
- python - 在列表中找到重复的单词并从列表中删除该单词