Amazon Echo에게 NEM 잔액을 말해 보았습니다.

13064 단어 달콤한BlockchainNEM
Amazon Echo가 도착했기 때문에 겨울방학의 공작이 와서, 암호화폐 XEM(NEM)의 특정의 주소의 잔고를 말하는 스킬 「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 어플리를 만드는 나란히 문턱이 낮아지면 시각 장애인도 돈의 취급이 자유로워질 때가 오는 것이 아닐까 기대할 수 있습니다.


좋은 웹페이지 즐겨찾기