Amazon Echo에게 NEM 잔액을 말해 보았습니다.
데모
Amazon echo에게 특정 주소의 XEM 잔액을 말해 보았다. #NEM 피 c. 라고 r. 코 m / KV X3 ゔ 24b — Daoka@OpenApostille (@DaokaTrade) 2018년 1월 2일
개요
Amazon Echo에게 "Alexa, NEM Checker에서 잔액을 가르쳐주세요"라고 말하면 Amazon Echo에서 Lambda에서 만든 NEM Checker 용 프로그램이 호출됩니다.
NEM 검사기 프로그램은 NEM 계정 정보를 얻는 API를 호출하여 지정된 NEM 잔액을 얻습니다.
잔액을 얻을 수 있으면, Amazon Echo에게 「주소 "NAxxxxx"의 잔액은 ○○xem입니다. 대답합니다.
소스 코드
이번 프로그램은 alexa/skill-sample-nodejs-fact 을 커스터마이즈 해 작성하고 있습니다.
실험을 위해 주소와 연결 대상 노드는 고정되어 있습니다.
'use strict';
var Alexa = require('alexa-sdk');
let request = require('request-promise');
//Replace with your app ID (OPTIONAL). You can find this value at the top of your skill's page on http://developer.amazon.com.
//Make sure to enclose your value in quotes, like this: var APP_ID = "amzn1.ask.skill.bb4045e6-b3e8-4133-b650-72923c5980f1";
var APP_ID = undefined;
var SKILL_NAME = "NEMチェッカー";
var GET_FACT_MESSAGE_PREFIX = "アドレス、「"
var GET_FACT_MESSAG_MID = "」 の残高は、";
var GET_FACT_MESSAGE_SUFFIX = " XEMです。"
var HELP_MESSAGE = "残高を聞きたい時は「残高教えて」と、終わりたい時は「おしまい」と言ってください。どうしますか?";
var HELP_REPROMPT = "どうしますか?";
var STOP_MESSAGE = "さようなら";
var ADDRESS = "NAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
var NIS_API = "http://alice2.nem.ninja:7890/account/get?address=";
const END_POINT = NIS_API + ADDRESS;
exports.handler = function(event, context, callback) {
var alexa = Alexa.handler(event, context);
alexa.APP_ID = APP_ID;
alexa.registerHandlers(handlers);
alexa.execute();
};
var handlers = {
'LaunchRequest': function () {
this.emit('GetNewFactIntent');
},
'GetNewFactIntent': function () {
var balance = 0;
var options = {
method: 'GET',
uri: END_POINT,
json: true
}
request(options).then((response) => {
console.log(response['account']['balance']/1000000);
balance = response['account']['balance']/1000000;
var speechOutput = GET_FACT_MESSAGE_PREFIX + ADDRESS + GET_FACT_MESSAG_MID + balance + GET_FACT_MESSAGE_SUFFIX;
this.emit(':tellWithCard', speechOutput, SKILL_NAME, speechOutput);
}, (error) => {
console.log(error);
var speechOutput = "残高の取得に失敗しました。"
this.emit(':tellWithCard', speechOutput, SKILL_NAME, speechOutput);
});
},
'AMAZON.HelpIntent': function () {
var speechOutput = HELP_MESSAGE;
var reprompt = HELP_REPROMPT;
this.emit(':ask', speechOutput, reprompt);
},
'AMAZON.CancelIntent': function () {
this.emit(':tell', STOP_MESSAGE);
},
'AMAZON.StopIntent': function () {
this.emit(':tell', STOP_MESSAGE);
}
};
요약
Amazon Echo 기술을 Lambda로 부담없이 만들 수 있으며, API로 NEM의 블록체인에 액세스할 수 있기 때문에 상대적으로 쉽게 Amazon Echo에게 특정 주소의 잔액을 말할 수 있습니다. 했다.
가능성은 Amazon Echo에서 송금할 수 있다고 생각하지만 송금하려면 다음과 같은 문제가 있습니다.
- Amazon Echo에서 사용하는 데이터는 클라우드에 저장해야 하기 때문에 개인 키를 안전하게 보관하는 방법을 고려해야 합니다.
- 음성 인터페이스만을 가지므로, 송금처, 송금 금액, 메시지의 지정을 이하에 정확하게 하기 쉽게 할까 고려할 필요가 있다.
이번에 Amazon Echo를 사용한 샘플 앱을 만들어 본 생각으로 NEM의 보급 활동을 하고 있는 마츠모토 씨가 NEM 지갑을 시각 장애인에게 시도해 보았습니다. 강해지고 있는 것을 알고, 그 계기가 된다고 생각해 만들어 보았습니다.
과제는 있습니다만, 이렇게 AI 스피커의 앱 개발도 Web 어플리를 만드는 나란히 문턱이 낮아지면 시각 장애인도 돈의 취급이 자유로워질 때가 오는 것이 아닐까 기대할 수 있습니다.
Reference
이 문제에 관하여(Amazon Echo에게 NEM 잔액을 말해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/daoka/items/abfa65956b4da7133cd0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)