¿Necesita ayuda?

Guía de integración de la API de NiceHash con las hojas de cálculo de Google

En este artículo, vamos a explicar cómo utilizar Google Apps Script con NiceHash API y escribir datos en la hoja de cálculo de Google. Puedes utilizar esta guía como punto de partida para hacer el seguimiento de tus ganancias, pagos, saldo o construir otros scripts personalizados.

Lista de contenidos:


#1 Generación de claves y secretos de la API

Para llamar al endpoint de NiceHash, hay que crear primero las claves privadas y públicas del endpoint.

Puedes hacerlo siguiendo estos pasos:

  1. Dentro de la plataforma NiceHash, navegue hasta la configuración de API keys de lacuenta o de la organización.
  2. Haga clic en Crear nueva clave API y rellene el formulario.
  3. Introduzca la clave 2FA.
  4. Guarde Código de la clave API y Código de la clave secreta de la API. Estas claves sólo se mostrarán en este momento. Si se pierden, tendrá que generar nuevas claves.
  5. Confirme la clave API con el código enviado a su correo electrónico.

API keys NiceHash

También necesitará un ID de organización. Puede encontrarlo en la página de Configuración de la cuenta/organización > Claves API..


#2 Script de Google Apps

Para abrir los Scripts de Google desde las Hojas de Cálculo de Google, sólo tienes que ir a la sección Extensiones > Script de Apps dentro de la hoja de cálculo de Google.

Verás una función vacía MyFunction() Ahora está listo para empezar a codificar.

API methods nicehash


#3 Autenticación

Copie este código dentro de myFunction().

function generateNonce() {
    var d = Date.now();
    return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
    var r = (d + Math.random() * 16) % 16 | 0;
    d = Math.floor(d / 16);
    return (c == "x" ? r : r & 0x7 | 0x8).toString(16);
    });
}

eval(UrlFetchApp.fetch("https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.min.js").getContentText());
eval(UrlFetchApp.fetch("https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/hmac-sha256.min.js").getContentText());
eval(UrlFetchApp.fetch("https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/enc-base64.min.js").getContentText());
var delim = "\u0000";
var url = "/main/api/v2/mining/miningAddress"; //Example of GET method. Change this to call different methods. Only use URL after "https://api2.nicehash.com".
var key = "YOUR_API_KEY"; //Change this value to your custom key. Leave quotation marks.
var secret = "YOUR_API_SECRET"; //Change this value to your custom secret. Leave quotation marks.
var org = "YOUR_ORGANIZATION_ID"; //Change this value to your custom id. Leave quotation marks.
var time = ""+new Date().getTime();
var nonce = generateNonce();
var reqMeth = "GET";
var content = key + delim + time + delim + nonce + delim + delim + org + delim + delim + reqMeth + delim + url + delim;
var HMACsig = CryptoJS.HmacSHA256(content, secret);
var xServiceAuth = key + ":" + HMACsig;
var headers = {"X-Nonce": nonce, "X-Time": time, "X-Auth": xServiceAuth, "X-Organization-Id": org};
var response = UrlFetchApp.fetch("https://api2.nicehash.com" + url, {"headers": headers});
var content = response.getContentText();
var obj = JSON.parse(content);

Este código creará una autenticación con el servicio API de NiceHash. 

Puede utilizar var obj para jugar ahora. 

Ejemplo de respuesta:

{"address":"39ok3paMEbrtb1fKukbCreAESLzp5nAMVU"}

Para conocer otros métodos de la API, utilice la Documentación de NiceHash.


#4 Codificación y escritura de datos en la hoja de cálculo

A partir de ahora, puedes empezar a codificar con Javascript básico dentro de Google Apps Script. Puedes encontrar la documentación de Apps Script aquí

Puede obtener la dirección de Bitcoin con el ejemplo anterior. Para acceder a esta dirección simplemente utilice var address = obj.address;

A continuación, debes vincular la función a la hoja (pestaña dentro de la hoja de cálculo). Puedes hacerlo con este código:

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SHEET_NAME");

Para escribir el valor de la dirección en la hoja de cálculo, utilice este:

var cell = sheet.getRange("B2"); cell.setValue(address);

Ejecute el script haciendo clic en el botón RUN de la parte superior. La dirección de Bitcoin se escribirá en la celda B2.


#5 Ejemplo de código completo

Copie este código en su Apps Script y ejecútelo. Recuerde cambiar las claves de la API y el ID de la organización.

function myFunction() {
    function generateNonce() {
        var d = Date.now();
        return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
            var r = (d + Math.random() * 16) % 16 | 0;
            d = Math.floor(d / 16);
            return (c == "x" ? r : r & 0x7 | 0x8).toString(16);
        });
    }

    eval(UrlFetchApp.fetch("https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.min.js").getContentText());
    eval(UrlFetchApp.fetch("https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/hmac-sha256.min.js").getContentText());
    eval(UrlFetchApp.fetch("https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/enc-base64.min.js").getContentText());
    var delim = "\u0000";
    var url = "/main/api/v2/mining/miningAddress"; //Example of GET method. Change this to call different methods. Only use URL after "https://api2.nicehash.com".
    var key = "YOUR_API_KEY"; //Change this value to your custom key. Leave quotation marks.
    var secret = "YOUR_API_SECRET"; //Change this value to your custom secret. Leave quotation marks.
    var org = "YOUR_ORGANIZATION_ID"; //Change this value to your custom id. Leave quotation marks.
    var time = ""+new Date().getTime();
    var nonce = generateNonce();
    var reqMeth = "GET";
    var content = key + delim + time + delim + nonce + delim + delim + org + delim + delim + reqMeth + delim + url + delim;
    var HMACsig = CryptoJS.HmacSHA256(content, secret);
    var xServiceAuth = key + ":" + HMACsig;
    var headers = {"X-Nonce": nonce, "X-Time": time, "X-Auth": xServiceAuth, "X-Organization-Id": org};
    var response = UrlFetchApp.fetch("https://api2.nicehash.com" + url, {"headers": headers});
    var content = response.getContentText();
    var obj = JSON.parse(content);

    //-----START CODING BELOW THIS LINE-----
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SHEET_NAME");

    var address = obj.address;

    var cell = sheet.getRange("B2");
    cell.setValue(address);
}


ESCRITO POR
Marko Tarman
Marko es el Gerente de Minería y Creador de Contenido de NiceHash. Empezó a minar en 2012, antes de que salieran los primeros ASIC. Pasó de minar BTC y LTC con GPU a VTC e incluso DOGE. Su lema minero: "Tengo 99 problemas, un mal riser es todos ellos".