Как развить навык Alexa, чтобы узнать последнюю цену биткойнов

Биткойн в последнее время в моде, поэтому я решил развить навык Alexa, который сообщит вам последнюю цену биткойнов. Он может сказать вам цену биткойнов, Ethereum и Ethereum Classic - с возможностью использования большего количества криптовалют через документацию API.

Что вам понадобится:

  • Бессерверная структура
  • AWS CLI
  • Узел и NPM

Как начать (вы можете посмотреть Github Repo здесь):

git clone [email protected]:phanssens1/alexa_crypto_price.git
cd alexa_crypto_price/lambda
yarn add node-fetch alexa-sdk aws-sdk
cd ..
sls deploy

Это развернет вас на стороне лямбда, а затем вам нужно будет перейти на Портал разработчика Alexa, чтобы выполнить настройку - я обновлю этот пост в блоге позже, подробно описав, как это сделать.

Чтобы познакомить вас с основными частями кода, следует обратить внимание на две вещи:

fetch(url)
.then(res => res.json())
.then(json => {console.log(json),
this.emit(':ask', `The crypto value is ${json.lastPrice}`, 'you hear me?')
}
)
.catch(error => {
console.log(error);
});

Вышеупомянутое извлекает данные о ценах на криптовалюту из BTC Markets и преобразует их в документ JSON и представляет значение lastPrice - вы можете узнать больше о BTC Market API здесь.

Вторая часть кода, которая представляет интерес, - это использование переключателя - это позволяет навыку Alexa гибко указывать последнюю цену различных криптовалют:

switch(cryptoValue) {
case 'ethereum' || 'ETH' || 'Ethereum':
console.log('switch - ethereum');
url = 'https://api.btcmarkets.net/market/ETH/AUD/tick';
break;
case 'bitcoin' || 'BTC' || 'Bitcoin':
console.log('switch - ethereum');
url = 'https://api.btcmarkets.net/market/BTC/AUD/tick';
break;
default:
console.log('switch - default');
url = 'https://api.btcmarkets.net/market/ETC/AUD/tick';
}

Что ж, это все, что у меня есть по этому поводу. Надеюсь, вам понравилось читать и, возможно, вы узнали кое-что интересное.

Питер Хансенс - инженер по данным / специалист по данным. Когда он не работает над улучшением качества данных, он пытается изучить функциональное программирование или получить больше сертификатов для облачных вычислений.