Как развить навык 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'; }
Что ж, это все, что у меня есть по этому поводу. Надеюсь, вам понравилось читать и, возможно, вы узнали кое-что интересное.
Питер Хансенс - инженер по данным / специалист по данным. Когда он не работает над улучшением качества данных, он пытается изучить функциональное программирование или получить больше сертификатов для облачных вычислений.