Mtgox

是否有任何關於將 MtGox API 與 node.js 一起使用的有用文件?

  • August 16, 2013

我一直在尋找一些幫助,使用與 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);
});

這是 v1 API 的文件

引用自:https://bitcoin.stackexchange.com/questions/6133