Я искал помощь в создании платформы с использованием узла, который работает с API MtGox. Кажется, сделать запрос легко, но я не понимаю, как передать параметр.
Прямо сейчас мой код начинается, как показано ниже. Я могу подключиться к серверу и получить основные рыночные данные, но я не знаю, как сделать что-то еще....
request = require('request');
APIResponder = require('../libraries/apiresponder');
exports.market_data = function(req, res, next){
request('https://mtgox.com/api/1/BTCUSD/ticker', function (err, response, body) {
console.log(response);
console.log(body);
APIResponder.respond(res, response);
});
};
В вики Биткойн есть хороший пример программы :
var querystring = require('querystring'),
https = require('https'),
crypto = require('crypto');
function MtGoxClient(key, secret) {
this.key = key;
this.secret = secret;
}
MtGoxClient.prototype.query = function(path, args, callback) {
var client = this;
// if no args or invalid args provided, just reset the arg object
if (typeof args != "object") args = {};
// generate a nonce
args['nonce'] = (new Date()).getTime() * 1000;
// compute the post data
var post = querystring.stringify(args);
// compute the sha512 signature of the post data
var hmac = crypto.createHmac('sha512', new Buffer(client.secret, 'base64'));
hmac.update(post);
// this is our query
var options = {
host: 'mtgox.com',
port: 443,
path: '/api/' + path,
method: 'POST',
agent: false,
headers: {
'Rest-Key': client.key,
'Rest-Sign': hmac.digest('base64'),
'User-Agent': 'Mozilla/4.0 (compatible; MtGox node.js client)',
'Content-type': 'application/x-www-form-urlencoded',
'Content-Length': post.length
}
};
// run the query, buffer the data and call the callback
var req = https.request(options, function(res) {
res.setEncoding('utf8');
var buffer = '';
res.on('data', function(data) { buffer += data; });
res.on('end', function() { if (typeof callback == "function") { callback(JSON.parse(buffer)); } });
});
// basic error management
req.on('error', function(e) {
console.log('warning: problem with request: ' + e.message);
});
// post the data
req.write(post);
req.end();
};
var client = new MtGoxClient('mykey', 'mysecret');
client.query('1/BTCUSD/public/ticker', {}, function(json) {
// do something
console.log(json);
});
Хотел добавить к этому, что для streaming/ws API вики ссылается на репозиторий git от ralphtheninja, который предоставил библиотеку для читаемого потока node.js для mtgox.
По сути, он преобразует поток в объект node.js stream.Readable.