RxJS node-oauth 简单获取请求失败
RxJS node-oauth simple get request fails
处理一个简单的(相对)RxJS demo/test 代码,该代码发出一个 Twitter Api 调用和一个 MongoDB 请求并将它们压缩到一个单独的可观察对象中。
要进行 Twitter Api 调用,您需要通过 Oauth 进行身份验证。我找到了 node-oauth 库来验证节点请求:
var oauth = new OAuth.OAuth(
'https://api.twitter.com/oauth/request_token',
'https://api.twitter.com/oauth/access_token',
'key',
'secret',
'1.0A',
null,
'HMAC-SHA1'
);
然后我用 Oauth get
方法创建一个新的 Observable 以从 Twitter 获取位置:
var twitterStream = Rx.Observable.fromNodeCallback(oauth.get)('https://api.twitter.com/1.1/trends/place.json?id=23424977',
'access-token',
'token');
来自 MongoDB 的另一个流:
Rx.Node.fromStream(Order.find().stream());
压缩它们的最后一步:
var getNewList = Rx.Observable
.zip(flickrStream, orderStream, function(user, order) {
return {user: user, order: order};
});
getNewList.subscribe(function(response) {
// render `response`
console.log(response);
});
尽管当我通过 Node 执行代码时,代码对我来说似乎没问题,但以下消息会打印到控制台:
TypeError: Object #<Object> has no method '_performSecureRequest'
at exports.OAuth.get (/.../node_modules/oauth/lib/oauth.js:487:15)
at /.../node_modules/rx/dist/rx.all.js:5504:14
我可能做了某事。使用 Twitter 请求创建新的 Observable 时出错。此外;我已经在没有 RxJS 和 MongoDB 查询的情况下进行 Twitter 调用时单独测试了代码,并且这些代码没有任何问题。同样将 fromNodeCallback
更改为 fromCallback
也没有任何区别。
提供 context
参数(参见 documentation)或绑定 get
的上下文:
Rx.Observable.fromNodeCallback(oauth.get.bind(oauth))
或
Rx.Observable.fromNodeCallback(oauth.get, oauth)
处理一个简单的(相对)RxJS demo/test 代码,该代码发出一个 Twitter Api 调用和一个 MongoDB 请求并将它们压缩到一个单独的可观察对象中。
要进行 Twitter Api 调用,您需要通过 Oauth 进行身份验证。我找到了 node-oauth 库来验证节点请求:
var oauth = new OAuth.OAuth(
'https://api.twitter.com/oauth/request_token',
'https://api.twitter.com/oauth/access_token',
'key',
'secret',
'1.0A',
null,
'HMAC-SHA1'
);
然后我用 Oauth get
方法创建一个新的 Observable 以从 Twitter 获取位置:
var twitterStream = Rx.Observable.fromNodeCallback(oauth.get)('https://api.twitter.com/1.1/trends/place.json?id=23424977',
'access-token',
'token');
来自 MongoDB 的另一个流:
Rx.Node.fromStream(Order.find().stream());
压缩它们的最后一步:
var getNewList = Rx.Observable
.zip(flickrStream, orderStream, function(user, order) {
return {user: user, order: order};
});
getNewList.subscribe(function(response) {
// render `response`
console.log(response);
});
尽管当我通过 Node 执行代码时,代码对我来说似乎没问题,但以下消息会打印到控制台:
TypeError: Object #<Object> has no method '_performSecureRequest'
at exports.OAuth.get (/.../node_modules/oauth/lib/oauth.js:487:15)
at /.../node_modules/rx/dist/rx.all.js:5504:14
我可能做了某事。使用 Twitter 请求创建新的 Observable 时出错。此外;我已经在没有 RxJS 和 MongoDB 查询的情况下进行 Twitter 调用时单独测试了代码,并且这些代码没有任何问题。同样将 fromNodeCallback
更改为 fromCallback
也没有任何区别。
提供 context
参数(参见 documentation)或绑定 get
的上下文:
Rx.Observable.fromNodeCallback(oauth.get.bind(oauth))
或
Rx.Observable.fromNodeCallback(oauth.get, oauth)