Mtgox
是否有任何關於將 MtGox API 與 node.js 一起使用的有用文件?
我一直在尋找一些幫助,使用與 MtGox api 一起工作的節點來建構平台。提出請求似乎很容易,但我對如何傳遞參數感到困惑。
現在我的程式碼開始如下。我可以訪問伺服器並獲取基本的市場數據,但我不知道該怎麼做……
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); });