Таблицы Google содержат большое количество встроенных функций. Но что, если ваша электронная таблица может включать данные в реальном времени, которыми вы можете манипулировать и обогащать с помощью постоянно растущего набора функций? Например, вы можете получить изображение карты Google по адресу или сделать снимок экрана веб-сайта с его URL-адреса. Это обещание объединения многоразовых функций Clay, которые привносят мощность и гибкость API в электронные таблицы.

В этой демонстрации мы покажем вам, как расширить листы с помощью быстрорастущей библиотеки общедоступных функций Clay.

Что вам понадобится для этого урока:

а. Аккаунт Google

б. Знание базовых концепций кодирования, хотя кодирование не потребуется, просто скопируйте и вставьте

Допустим, вы отслеживаете свой собственный капитал, и часть ваших денег находится в биткойнах и других криптовалютах. Поскольку цена биткойна постоянно меняется, вы хотите, чтобы в вашей электронной таблице была последняя цена токена, чтобы вы могли видеть общую сумму денег, которая у вас есть в любой момент времени.

Мы создадим демонстрационную таблицу, в которой всегда будут встроены последние цены на биткойны, как вы видите ниже.

Прежде чем мы создадим нашу собственную версию, попробуйте открыть лист с примерами ниже и выберите ячейки Биткойн или Эфириум, затем нажмите Получить цену токена, чтобы отобразить последние цены в листе. Для работы вам необходимо войти в свою учетную запись Google.



Вот что происходит под капотом и как воссоздать это для себя.

В этом случае мы используем функцию, написанную nicoslepicos, которая называется функцией blockchain-token-ticker, которая доступна здесь:

Https://clay.run/services/nicoslepicos/blockchain-token-ticker

Найдите минутку и попробуйте сами на сайте Clay. Эта функция принимает имя токена в качестве входных данных и возвращает информацию об этом токене. Например, если мы найдем биткойн, мы получим такой результат.

Input:
token: bitcoin
Output:
id:”bitcoin”
name:”Bitcoin”
symbol:”BTC”
rank:”1"
price_usd:”1106.79"
price_btc:”1.0"
24h_volume_usd:”194136000.0"
market_cap_usd:”17903503661.0"
available_supply:”16176062.0"
total_supply:”16176062.0"
percent_change_1h:”0.09"
percent_change_24h:”4.39"
percent_change_7d:”10.36"
last_updated:”1487708044"

А вот и самое интересное. Давайте создадим нашу собственную таблицу, которая имитирует эту функцию. Сначала создайте новую электронную таблицу и введите имена нескольких токенов в виде строк. Например, ваша электронная таблица может выглядеть так:

Name of Token | Price of Token   | Number of Tokens | Total Amount
ripple        |                  |         5        |
bitcoin       |                  |         9        |
ethereum      |                  |         10       |

Мы собираемся сделать кнопку в электронных таблицах Google, которая при нажатии будет использовать текст текущей выбранной ячейки в качестве имени токена и вызывать ранее обсуждавшуюся функцию nicoslepicos / blockchain-token-ticker, чтобы возвращать текущую цену этого токена.

  1. Щелкните Инструменты- ›Новый сценарий и вставьте следующее:
function myFunction(name) {
  var payload = {
    token: name
  }; 
  var url = 'https://clay.run/services/nicoslepicos/blockchain-token-ticker';
  var options = {
    'method': 'post',
    'payload': payload
  };
  var response = UrlFetchApp.fetch(url, options);
  var json = response.getContentText();
  var data = JSON.parse(json);
  
  return data
}
function getTokenPrice() {
 var ss = SpreadsheetApp.getActiveSpreadsheet(),
     sheet = ss.getActiveSheet(),
     range = sheet.getActiveRange();
     values = range.getValues()
values.forEach(function(value, i) {
     var data = myFunction(value[0])
     writeData(data, range, i);
  });
  
}
function writeData(data, range, i) { 
    var firstNameOffset = range.offset(i, 1);
    firstNameOffset.setValue(data[0].price_usd);
}

2. Щелкните Вставить- ›Рисование и Нарисуйте круг. Вы также можете добавить текст в этот круг, чтобы было понятно, что делает кнопка.

3. Как только вы вставите рисунок. Щелкните его правой кнопкой мыши и щелкните стрелку в правом верхнем углу, чтобы выбрать добавление сценария. Введите следующее:

getTokenPrice()

Вот и все! Теперь попробуйте, выбрав названия токенов и нажав кнопку. Наблюдайте, как цена волшебным образом увеличивается.

Вы можете использовать эту технику с другими общедоступными функциями Clay, которые постоянно добавляются и доступны здесь:

Http://clay.run/public/services

или создайте свою функцию на Clay.run/ и поделитесь ею с сообществом!

Если вам нужна помощь в начале работы или у вас есть отзыв, которым вы хотите поделиться, напишите мне, оставьте комментарий или присоединитесь к нашему gitter.