Работа с простым (относительно) демо-/ тестовым кодом RxJS, который делает запрос Twitter Api и запрос MongoDB и застегивает их в один наблюдаемый.RxJS node-oauth simple get request failed
Для того, чтобы сделать звонок в Twitter, вам необходимо пройти аутентификацию через 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
методом, чтобы получить места из 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);
});
Несмотря код кажется Ok для меня, когда я исполню ее с помощью узла ниже сообщение выводится на консоль:
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
Вполне возможно, что я сделал СТГ. неправильно при создании нового Observable с запросом Twitter. Дополнительно; Я тестировал коды индивидуально, создавая твиттер-вызов без запросов RxJS и MongoDB, и они работают без проблем. Также изменение fromNodeCallback
на fromCallback
не имело никакого значения.