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

Вам также понадобится идентификатор (ID) организации. Его можно найти на странице настроек аккаунта / организации во вкладке "Ключи API".
#2 Google Apps Script
Чтобы открыть Google Scripts в Таблице Google, просто перейдите в Расширения > Apps Script.
Вы увидите пустую функцию MyFunction(). Теперь вы готовы начать кодирование.

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