节点:Passport 可以用于进行 Twitter API 查询吗?
Node: Can Passport be used to make Twitter API queries?
我刚刚开始学习Node和Express(MEAN stack),我想知道,PassportJS可以用来查询Twitter API v1.1,还是仅用于身份验证?
我已经构建了以下代码,但我没有从中得到任何想要的东西(应用程序崩溃):
我的控制器:
/**
* Module dependencies.
*/
var mongoose = require('mongoose'),
async = require('async'),
passport = require('passport'),
TwitterStrategy = require('passport-twitter').Strategy,
_ = require('underscore');
exports.auth = function(req, res, passport) {
passport.use(new TwitterStrategy({
consumerKey: '7rTisA540o3BkQPRItqog',
consumerSecret: 'u5f4xShik2GSypDu7pFuXpRlf23nZdS1CeZCMSXE',
callbackURL: "http://localhost:3000/auth/twitter/callback"
},
function(token, tokenSecret, profile, done) {
console.log(token, tokenSecret, profile, done);
}
));
};
路线:
// Twitter API
app.get('/twitter', twitter.auth);
当我点击Localhost:3000/twitter时,我最终得到以下消息:
TypeError: Object function callbacks(err) {
var fn = route.callbacks[i++];
try {
if ('route' == err) {
nextRoute();
} else if (err && fn) {
if (fn.length < 4) return callbacks(err);
fn(err, req, res, callbacks);
} else if (fn) {
if (fn.length < 4) return fn(req, res, callbacks);
callbacks();
} else {
nextRoute(err);
}
} catch (err) {
callbacks(err);
}
} has no method 'use'
at exports.auth (/Users/nfento/Sites/mean-stack/app/controllers/twitter.js:12:16)
at callbacks (/Users/nfento/Sites/mean-stack/node_modules/express/lib/router/index.js:164:37)
at param (/Users/nfento/Sites/mean-stack/node_modules/express/lib/router/index.js:138:11)
at pass (/Users/nfento/Sites/mean-stack/node_modules/express/lib/router/index.js:145:5)
at Router._dispatch (/Users/nfento/Sites/mean-stack/node_modules/express/lib/router/index.js:173:5)
at Object.router (/Users/nfento/Sites/mean-stack/node_modules/express/lib/router/index.js:33:10)
at Context.next (/Users/nfento/Sites/mean-stack/node_modules/express/node_modules/connect/lib/proto.js:190:15)
at Context.actions.pass (/Users/nfento/Sites/mean-stack/node_modules/passport/lib/passport/context/http/actions.js:77:8)
at SessionStrategy.authenticate (/Users/nfento/Sites/mean-stack/node_modules/passport/lib/passport/strategies/session.js:67:10)
at attempt (/Users/nfento/Sites/mean-stack/node_modules/passport/lib/passport/middleware/authenticate.js:243:16)
我对此完全陌生,我希望获得身份验证令牌,然后从那里我可以查询 API,但是,我无法通过第一步。我的代码中做错了什么,还是我错误地使用了 Passport 库?
看起来在
exports.auth
函数中,passport
参数不是您所期望的。您已经删除了应用程序中的大部分代码,因此尚不清楚您如何在其他地方使用该函数,但似乎参数(护照库本身)未正确传递。
可以使用调试器单步执行代码并检查该参数的值并查找问题。有关详细信息,请参阅此问题:https://stackoverflow.com/a/3944507/1801
相关文章:
- Twitter API在jQuery AJAX中设置授权头
- Twitter API JSON调用未获得最新的3条推文
- Twitter API 1.1无法对您2进行身份验证
- Twitter api using Javascript
- 我需要oAuth根据新的Twitter API指南检索公共推文吗?(以及如何?)
- 使用Twitter API进行推文时出现重复状态错误
- Twitter Bootstrap的Tab插件中“data-api”是什么意思
- 通过Twitter API javascript从时间线获取Twitter状态
- 解决向api.twitter.com发出XMLHttpRequest的方法
- 如何在Node.js上使用twitter api实现回调函数
- 使用JavaScript和Twitter API加载推文
- Twitter搜索API身份验证错误
- Twitter API推文位置
- 如何定义搜索词框来搜索用户'使用Twitter流API和meter.js的特定时间线
- Twitter API - no encoding
- Twitter API:更新有效,但过滤器无效
- Date.getTime()返回IE11中ISO/Twitter API日期的NaN
- Twitter API and Node
- 访问 Twitter API - 身份验证和骨干模型
- “follow”键在Get friends/list API Twitter中总是返回false