├── README.md └── func.py /README.md: -------------------------------------------------------------------------------- 1 | # aws-lex-bitcoin-chatbot -------------------------------------------------------------------------------- /func.py: -------------------------------------------------------------------------------- 1 | """ 2 | Lexbot Lambda handler. 3 | """ 4 | from urllib.request import Request, urlopen 5 | import json 6 | 7 | def get_bitcoin_price(date): 8 | print('get_bitcoin_price, date = ' + str(date)) 9 | request = Request('https://rest.coinapi.io/v1/ohlcv/BITSTAMP_SPOT_BTC_USD/latest?period_id=1DAY&limit=1&time_start={}'.format(date)) 10 | request.add_header('X-CoinAPI-Key', '73034021-0EBC-493D-8A00-E0F138111F41') 11 | response = json.loads(urlopen(request).read()) 12 | return response[0]['price_close'] 13 | 14 | def lambda_handler(event, context): 15 | print('received request: ' + str(event)) 16 | date_input = event['currentIntent']['slots']['Date'] 17 | btc_price = get_bitcoin_price(date_input) 18 | response = { 19 | "dialogAction": { 20 | "type": "Close", 21 | "fulfillmentState": "Fulfilled", 22 | "message": { 23 | "contentType": "SSML", 24 | "content": "Bitcoin's price was {price} dollars".format(price=btc_price) 25 | }, 26 | } 27 | } 28 | print('result = ' + str(response)) 29 | return response 30 | --------------------------------------------------------------------------------