Gibt es eine nützliche Dokumentation zur Verwendung der MtGox-API mit node.js?

Ich habe nach Hilfe gesucht, um eine Plattform mit Knoten zu erstellen, die mit der MtGox-API funktioniert. Es scheint einfach zu sein, eine Anfrage zu stellen, aber ich bin verwirrt darüber, wie man einen Parameter übergibt.

Im Moment beginnt mein Code wie unten. Ich kann auf den Server gehen und grundlegende Marktdaten abrufen, aber ich weiß nicht, wie ich etwas anderes machen soll....

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);
  });
};

Antworten (2)

Das Bitcoin-Wiki hat ein nettes Beispielprogramm :

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);
});

Hier ist die Dokumentation für die v1-API

Wollte noch hinzufügen, dass das Wiki für die streaming/ws-API auf ein Git-Repo von ralphtheninja verweist, das eine Bibliothek für einen node.js-lesbaren Stream für mtgox bereitgestellt hat.

Im Grunde konvertiert es den Stream in ein node.js stream.Readable-Objekt.