Precisa de ajuda?

Guia de integração da API NiceHash com folhas de cálculo Google

Neste artigo, vamos explicar como usar o Google Apps Script com a API NiceHash e gravar dados na folha de calculo do Google. Você pode usar este guia como ponto de partida para rastrear os seus ganhos, pagamentos, saldos ou criar outros scripts personalizados.

Índice:


#1 Gerando chaves API e segredos

Para ligar ao endpoint NiceHash, você deve primeiro criar chaves de endpoint públicas e privadas.

Você pode fazer isso seguindo estas etapas:

  1. Dentro da plataforma NiceHash, navegue até as configurações da conta ou organização > Chaves de API
  2. Clique em CRIAR NOVA CHAVE API e preencha o formulário.
  3. Introduza a chave 2FA.
  4. Guarde O Código Chave API e o Código Chave Secreta API. Estas chaves só serão mostradas neste momento. Se as perder, você precisará gerar novas chaves.
  5. Confirme a chave API com o código que lhe enviámos por email.

API keys NiceHash

Você também precisará de um ID da organização. Isso pode ser encontrado na página Configurações de conta/organização > Chaves de API.


#2 Google Apps Script

Para abrir os Google Scripts das folhas de cálculo Google, navegue até Extensions > Apps Script dentro da folha de cálculo Google.

Você vai ver uma função vazia  MyFunction(). Agora pode começar a escrever o seu código.

API methods nicehash


#3 Autenticação

Copie este código para o interior 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 criará uma autenticação com o serviço da API NiceHash.

Você pode usar var obj para se movimentar. 

Exemplo de resposta:

{"address":"39ok3paMEbrtb1fKukbCreAESLzp5nAMVU"}

Para aprender mais métodos da API, leia a documentação da NiceHash.


#4 Codificando e escrevendo dados na folha de calculo

A partir de agora, você pode começar a codificar com Javascript básico dentro do Google Apps Script. Você pode encontrar a documentação do Apps Script aqui.

Você pode encontrar o seu endereço Bitcoin com o exemplo acima. Para aceder a este endereço simplesmente use var address = obj.address;

Seguidamente, você tem de conectar a função à folha (separador dentro da folha de cálculo). Você pode fazê-lo com este código:

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

Para escrever este valor de endereço na folha de cálculo, use isto:

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

Execute o script clicando no botão RUN no topo. O endereço Bitcoin vai ser escrito na célula B2.


#5 Exemplo de código completo

Copie este código para o seu Apps Script e execute-o. Não se esqueça de mudar para as suas chaves API e ID da organização!

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 é especialista em hardware de mineração e criador de conteúdo da NiceHash. Ele começou a minar em 2012, antes do lançamento dos primeiros ASICs. Ele passou de mineração de GPU BTC, LTC para VTC e até mesmo DOGE. O seu lema de mineração: "Tenho 99 problemas, um riser mau são todos eles".