Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

체대출신 코더의 개발자 성장기

구글어시스턴트와 노드서버를 잇기2 본문

CodeStates/TIL

구글어시스턴트와 노드서버를 잇기2

미토콘크리트 2019. 7. 26. 15:42

이전 글에서 내가 세운 전략은 다음과 같다.

1. 구글 어시스턴트를 켠다

2. 서버를 켠다

3. 구글어시스턴트와 서버를 잇는다.

4. gactions를 이용해 둘의 대화가 가능하도록 만든다.

 

1.구글 어시스턴트를 켠다

구글어시스턴트를 켜는 것은 4가지 과정중에서 굉장히 쉬운 일이다.

https://developers.google.com/actions/

 

Actions on Google  |  Actions on Google  |  Google Developers

Build Actions to help users get things done with the Google Assistant.

developers.google.com

이 사이트에 들어가 상단바에 'go to actions console'을 클릭하면, 원하는 프로젝트를 만들 수 있고 프로젝트를 선택하면

시뮬레이터가 뜬다.

 

2. 서버를 켠다.

내 로컬에서 서버를 켜는 것은 매우 쉽다.

npm install로 내가 가진 서버파일들이 잘 돌 수 있도록 필요한 모듈을 모두 다운받은 뒤

npm start 를 이용해 서버를 실행 시키면 된다.

 

하지만 문제는 이렇게 킨 서버는 나만 쓸수있는 프라이빗한 localhost서버이다.

 즉, 구글 어시스턴트는 나만 쓸수 있는 localhost 서버에 접근할 수 없기때문에 public하게 배포를 해줘야 한다.

 이 때, servo가 필요하게 된다.

 ssh -R 80:localhost:3000 serveo.net 

 이 커멘드를 내가 켜놓은 현재 서버의 폴더에서 실행시켜주면, 간단히 public하게 변경이 가능하다.

참고로 servo.net 앞의 주소는 내가 원하는 대로 바꿀수 있다.

 

 action.json은 gactions가 실행될때 어느 경로로 어시스턴트와 대화를 할껀지를 정해 주는 곳이다.

 url에 적혀있는 곳이 어시스턴트와 gactions를 이용해 대화할 경로라고 보면 된다.

 내가 받은 파일에는 미리 url이 정해져 있어서, servo경로를 정해진 url과 같도록 커스터 마이징하여

 servo를 이용해 서버를 배포했다.

 

3. 구글 어시스턴트와 서버를 잇는다.

https://blog.naver.com/jabdong4ny/221551345876

위의 사이트를 참조하여 연결 작업을 진행 했다.

 

1) 먼저, gactions를 다운받아서 

     chmod +x gactions 

     chmod +x gactions 

   를 이용해 실행권을 줘야한다.(리눅스 한정)

 

2) gactions를 배포한 서버파일의 경로로 이동 시킨다.

 

 3) gactions와 동일한 디렉토리에 creds.data라는 기존 자격증명이 있다면

    이것을 지워주어야 한다.

     rm creds.data 

    rm creds.data 

 

4) 서버에 구글 어시스턴트의 주소를 등록 해줘야한다.

간단히 말했지만, 자세히 말하면 구글에 '내가 이주소의 서버를 이용해 어시스턴트와 대화를 나눌거야'라는 등록을 해준다고

 보면된다.

 ./gactions update --action_package action.json --project project_id

맨 뒤의 프로젝트 아이디는 구글 클라우드 플랫폼의 리소스 관리창에 가서 얻을 수 있다.

https://console.cloud.google.com/cloud-resource-manager

 

Google Cloud Platform

하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

accounts.google.com

이게 잘 진행 되었다면 다음과 같은 메시지를 주면서 URL주소를 던져준다.

...더보기

Gactions needs access to your Google account. Please copy & paste the URL below into a web browser and follow the instructions there. Then copy and paste the authorization code from the browser back here.

그 URL에 타고 들어가면 

어떤 인증번호가 뜨는데 그 인증번호를 복사하여 터미널에

Enter the authorization code : 

Enter the authorization code : 

라고 적혀있는 곳에 붙혀 넣어준다면

...더보기

Your app for the Assistant for project [project-name] was successfully updated with your actions. ~~~

라는 메시지가 뜬다. 

그러면 이제 구글 어시스턴트가 내 서버와 소통을 하게 만들어 준것이다.

 

4. gactions를 이용해 둘의 대화가 가능하도록 만든다.

서버와 구글어시스턴트의 대화가 가능하도록하기 위해서는, 시뮬레이터로 test를 할 수 있어야 한다.

./gactions test --action_package action.json --project project_id

위의 코드를 이용해 test 모드로 진입할 수 있다.

성공적으로 연결이 되었다면 

...더보기

Your app for the Assistant for project cocoa-project-d228d is now ready for testing on Actions on Google enabled devices or the Actions Web Simulator at [simulator url]ㅁe authorization code:dsaasd

와 같은 메시지가 뜨면서 url을 던져주는데 그 url을 타고 들어가면 서버와 gactions를 이용해 대화가 가능해진다!

 

이제 남은 것은 django와 서버를 이어 주는 것인데 아직 성공은 못했다..

'CodeStates > TIL' 카테고리의 다른 글

도커  (0) 2019.07.29
node.js와 장고와 DB 연결  (0) 2019.07.28
구글 어시스턴트와 노드 서버를 잇기1  (0) 2019.07.26
장고- 가상환경 구축?  (0) 2019.07.25
장고 - __init__  (0) 2019.07.25
Comments