Besoin d'aide ?

Intégration de l'API NiceHash avec le guide Google spreadsheets

Dans cet article, nous allons expliquer comment utiliser Google Apps Script avec l'API NiceHash et écrire des données dans Google spreadsheets. Vous pouvez utiliser ce guide comme point de départ pour suivre vos gains, paiements, soldes ou créer d'autres scripts personnalisés.

Liste des contenus:


#1 Génération de clés et de secrets API

Pour appeler le point endpoint de NiceHash, vous devez d'abord créer des clés de endpoint privées et publiques.

Vous pouvez le faire en suivant ces étapes:

  1. Dans la plateforme NiceHash, accédez aux paramètres du compte ou de l'organisation > API clés
  2. Cliquez sur CRÉER UNE NOUVELLE CLÉ API et remplissez le formulaire.
  3. Saisissez la clé 2FA.
  4. Enregistrer le code de clé API et le code de clé secrète API. Ces clés seront uniquement affichées à ce point. En cas de perte, vous devrez générer de nouvelles clés.
  5. Confirmez la clé API avec le code envoyé à votre adresse e-mail.

API keys NiceHash

Vous aurez également besoin d'un ID d'organisation. Cela peut être trouvé sur les paramètres du Compte/Organisation > Page des clés API.


#2 Google Apps Script

Pour ouvrir Google Scripts à partir de Google Spreadsheets, accédez simplement aux extensions> Apps Script dans Google spreadsheet.

Vous verrez une fonction vide MyFunction( ). Vous êtes maintenant prêt à commencer à coder.

API methods nicehash


#3 Authentification

Copiez ce code dans 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);

Ce code va créer une authentification avec le service NiceHash API. 

Vous pouvez utiliser var obj pour jouer maintenant. 

Exemple de réponse:

{"address":"39ok3paMEbrtb1fKukbCreAESLzp5nAMVU"}

Pour des méthodes d'API supplémentaires, utilisez NiceHash documentation.


#4 Codage et écriture des données dans le spreadsheet

À partir de maintenant, vous pouvez commencer à coder avec Javascript de base dans Google Apps Script. Vous pouvez trouver Apps Script documentation here

Vous pouvez récupérer l'adresse Bitcoin avec l'exemple ci-dessus. Pour accéder à cette adresse il suffit d'utiliser var address = obj.address;

Ensuite, vous devez lier la fonction à la feuille (onglet à l'intérieur de spreadsheet). Vous pouvez le faire avec ce code:

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

Pour écrire la valeur de l'adresse dans le spreadsheet, utilisez cette:

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

Exécutez le script en cliquant sur le bouton RUN en haut. L'adresse Bitcoin sera écrite dans la cellule B2.


#5 Exemple de code complet

Copiez ce code dans votre Apps Script et exécutez-le. N'oubliez pas de modifier vos clés API et votre ID d'organisation!

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