Нужна помощь?

Руководство по интеграции API NiceHash с Таблицами Google

В этой статье мы объясним, как использовать Google Apps Script с API NiceHash и записывать данные в Таблицу Google. Вы можете использовать это руководство в качестве отправной точки для отслеживания своих доходов, выплат, баланса или создания других пользовательских скриптов.

Содержание: 


#1 Генерация ключей API и секретных кодов 

Для вызова конечной точки NiceHash необходимо сначала создать приватный и публичный ключ конечной точки.

Вы можете сделать это, выполнив следующие действия:

  1. На платформе NiceHash перейдите к настройкам аккаунта или организации > Ключи API.
  2. Нажмите СОЗДАТЬ НОВЫЙ КЛЮЧ API и заполните форму.
  3. Введите код 2FA.
  4. Сохраните код ключа API и секретный код ключа API. Эти ключи будут показаны только на этом шаге. В случае утери вам нужно будет сгенерировать новые ключи.
  5. Подтвердите ключ API с помощью кода, отправленного на вашу электронную почту.

API keys NiceHash

Вам также понадобится идентификатор (ID) организации. Его можно найти на странице настроек аккаунта / организации во вкладке "Ключи API".


#2 Google Apps Script

Чтобы открыть Google Scripts в Таблице Google, просто перейдите в Расширения > Apps Script.

Вы увидите пустую функцию MyFunction(). Теперь вы готовы начать кодирование.

API methods nicehash


#3 Аутентификация

Скопируйте этот код и вставьте его в 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);

Этот код создаст аутентификацию с сервисом API NiceHash.

Теперь вы можете использовать var obj для манипуляций.

Пример ответа:

{"address":"39ok3paMEbrtb1fKukbCreAESLzp5nAMVU"}

Дополнительные методы API доступны в документации NiceHash.


#4 Кодирование и запись данных в таблицу

С этого момента вы можете начать кодирование с помощью базового языка Javascript в Google Apps Script. Вы можете найти документацию Apps Script здесь.

Вы можете получить биткоин-адрес с помощью приведенного выше примера. Чтобы получить доступ к этому адресу, просто используйте var address = obj.address;

Затем вы должны связать функцию с таблицей (вкладка в таблице). Вы можете сделать это с помощью этого кода:

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

Чтобы записать значение адреса в таблицу, используйте это:

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

Запустите скрипт, нажав кнопку RUN вверху. Биткоин-адрес будет записан в ячейку B2.


#5 Полный пример кода 

Скопируйте этот код в свой Apps Script и запустите его. Не забудьте изменить ключи API и идентификатор организации!

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


НАПИСАНО
Marko Tarman
Марко — специалист по оборудованию для майнинга и создатель контента в NiceHash. Он начал заниматься майнингом в 2012 году, еще до того, как были выпущены первые ASIC. Он перешел от майнинга на видеокартах таких криптовалют, как BTC и LTC, к майнингу VTC и DOGE. Его майнинг-девиз: «У меня 99 проблем, но все дело в плохом райзере».