Benötigen Sie Hilfe?

Anleitung zur Integration der NiceHash-API mit Google-Spreadsheets

In diesem Artikel erklären wir Ihnen, wie Sie Google Apps-Script mit der NiceHash-API verwenden und Daten in eine Google-Tabelle eintragen. Sie können diese Anleitung als Ausgangspunkt verwenden, um Ihre Einnahmen, Auszahlungen und Guthaben zu verfolgen oder andere benutzerdefinierte Skripte zu erstellen.

Inhaltsangabe:


#1 Generieren von API-Schlüssel und Secrets

Um den NiceHash-Endpoint abzurufen, müssen Sie zuerst private und öffentliche Endpoint-Schlüssel erstellen.

Sie können dies tun, indem Sie diesen Schritten folgen:

  1. Navigieren Sie in der the NiceHash-Plattform zu den Konto- oder Organisationseinstellungen > API-Schlüssel
  2. Klicken Sie auf NEUEN API-SCHLÜSSEL ERSTELLEN und füllen Sie das Formular aus.
  3. Geben Sie den den 2FA-Schlüssel ein.
  4. Speichern Sie den  API Schlüssel-Code und den API Secret Schlüssel-Code. Diese Schlüssel werden nur an dieser Stelle angezeigt. Bei Verlust müssen Sie neue Schlüssel generieren.
  5. Bestätigen Sie den API-Schlüssel mit dem an Ihre E-Mail gesendeten Code.

API keys NiceHash

Außerdem benötigen Sie eine Organisations-ID. Diese finden Sie auf der Seite Konto-/Organisationseinstellungen > API-Schlüssel.


#2 Google Apps Script

Um Google Scripts aus Google Spreadsheets zu öffnen, navigieren Sie einfach zu Extensions > Apps Script in der Google-Tabelle.

Sie sehen eine leere Funktion MyFunction(). Sie können jetzt mit dem Codieren beginnen.

API methods nicehash


#3 Authentifizierung

Kopieren Sie den Code in 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);

Dieser Code erstellt eine Authentifizierung mit dem NiceHash-API-Dienst.

Sie können var obj verwenden, um ein wenig herum zu probieren. 

Antwortbeispiel:

{"address":"39ok3paMEbrtb1fKukbCreAESLzp5nAMVU"}

Für zusätzliche API-Methoden verwenden Sie  die NiceHash-Dokumentation.


#4 Codieren & Schreiben von Daten in die Tabelle

Von nun an können Sie mit dem Programmieren mit einfachem Javascript in Google Apps Script beginnen. Die Apps Script-Documentation finden Sie here

Sie können die Bitcoin-Adresse mit dem obigen Beispiel abrufen. Um auf diese Adresse zuzugreifen, verwenden Sie einfach var address = obj.address;

Als nächstes müssen Sie die Funktion mit dem Blatt verknüpfen (Tab innerhalb der Tabelle). Sie können dies mit diesem Code tun:

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

Um den Adresswert in die Tabelle zu schreiben, verwenden Sie dies:

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

Führen Sie das Skript aus, indem Sie oben auf die Schaltfläche RUN klicken. Die Bitcoin-Adresse wird in die B2-Zelle geschrieben.


#5 Beispiel eines vollständigen Codes

Kopieren Sie diesen Code in Ihr Apps-Skript und führen Sie es aus. Denken Sie daran, Ihre API-Schlüssel und Ihre Organisations-ID zu ändern!

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


GESCHRIEBEN VON
Marko Tarman
Marko ist Mining-Hardware-Spezialist und Content-Creator von NiceHash. Er begann 2012 mit dem Mining, bevor die ersten ASICs veröffentlicht wurden. Er ging beim GPU-Mining von BTC, über LTC zu VTC und sogar DOGE. Sein Mining-Motto: "Ich habe 99 Probleme, alle sind ein schlechter Riser".