amazon echo로 회사 접수 시스템을 만들어 보았습니다.
Google Home에서 접수 시스템을 만들어 보았습니다.
또, JavaScript나 amazon lambda 만진 경험이 전혀 없기 때문에, 실수등 있으면 꼭 가르쳐 주세요!
구성 흐름
 
 완성 동영상
amazon echo로 접수 시스템을 만들어 보았다 피 c. 라고 r. 이 m/q0c6rbK개K
 필요한 것
-  amazon developer 계정 
-  amazon Echo 
-  slack 계정 (채널 권한이 있음) 
 그럼 만들어 보자!
amazon echo로 접수 시스템을 만들어 보았다 피 c. 라고 r. 이 m/q0c6rbK개K
필요한 것
-  amazon developer 계정 
-  amazon Echo 
-  slack 계정 (채널 권한이 있음) 
 그럼 만들어 보자!
alexa skill의 간단한 동작과 개발 절차는 여기를 참조했습니다.
 2017년 12월 11일 
대화 모델의 Intents 설정
아래의 경우에 대응하기 위한 인텐트를 추가했습니다.
- 약속이 있는 분
- 인터뷰에서 온 분(학생)
- 배송업체
- 방문객 수 
슬랙 측의 일
채널에 Incoming WebHooks 만들기
WorkSpace 멤버의 ID를 가져옵니다.

<@userID> 에서 회원에게 멘션을 날릴 수 있습니다. 
htps : // 아피. scck. 코 m / Change g / 2017-09-te-o-o-no-t-use r name s
여기서 채널의 멤버 ID를 얻을 수 있습니다. 
 htps : // 아피. scck. 코 m/메조 ds/우세 rs.ぃ st / st 
아마존 람다 측
name.json 만들기
담당자의 이름, 전체 이름 모두 대응할 수 있도록, 모두 준비합니다.
[
    {  "name" : "AA",  "full_name" : "AABB",  "slack_name" : "aabb"  },
   {  "name" : "CC",  "full_name" : "CCDD",  "slack_name" : "ccdd"  },
   and more...
]
index.js 만들기
//require
var Alexa = require('alexa-sdk');
var slackjson = require('./slack.json');
var namejson = require('./name.json');
var rp = require('request-promise');
기본 프레임은 'skill-sample-nodejs-trivia'를 참조하면 된다.
학생 시간의 예
var firstHandlers = Alexa.CreateStateHandler(STATUS.FIRSTMODE, {
    "Unhandled": function(){
        ...
    },
    "GetAnswerIntent": function (){
        ....//約束のある方
    },
    "GetAnswerFromStudentIntent": function (){
        studentRequest.call(this, false);
        rp(options).then((response) => {
            this.emit(':tell', '担当者に伝えました、少々お待ち下さい');
        }, (error) => {
            this.emit(':tell', '通信失敗しました,もう一度お願いします');
        });
    },
    "GetAnswerFromDeliveryIntent": function (){
        ....//配送業者
    }, 
    "AMAZON.StopIntent": function(){
      this.emit("stop");
    }
});
function studentRequest(frist) {
    var to_user_message = "<@slackid> 面接の学生がきました。"
    options = {
        method: 'POST',
        uri: slack_webhook,//先のslack_webhook
        body: {
            text: to_user_message
        },
        json: true
    }; 
}
slack에 post하는 내용은, Incoming WebHooks를 설정할 때의 Setup Instructions를 참조하면 좋다
위의 작업이 끝나면 zip 파일을 만들고 lambda에 업로드하여 테스트 clear라면 완성입니다!
엄청 빠진 곳
첫 번째 게시물을 작성하는 방법:
    "GetAnswerFromStudentIntent": function () {
        studentRequest.call(this, false);
        rp(options); //ここでpost
        this.emit(':tell', '担当者に伝えました、少々お待ち下さい');
    },
이 글을 쓰면 post 응답이 반환되기 전에 this.emit()를 실행하고 심각한 때에는 이전에 시작한 스킬의 응답을 emit하기도 했습니다. 
검색한 결과 다음과 같은 문제를 발견했습니다. 
  
 
아무래도 비동기 처리를 하는 것이 원인인 것 같습니다.
요약
JavaScript와 Lambda를 처음 만졌는데, 생각보다 재미있었습니다. 
다음 목표는 slack message button을 추가하여 담당자가 대응한 것을 확인할 수 있는 느낌으로 하고 싶습니다. 
API Gateway로 만들 수 있는 것 같기 때문에, 조사해 보겠습니다. 
Reference
이 문제에 관하여(amazon echo로 회사 접수 시스템을 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ikarosu_chihaya/items/5f49ee55508e66e381fd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            

