트윌리오 스튜디오를 만져 보았다 2

13230 단어 twiliogcp
지난번 에서 계속해서 Twilio Studio에서 GCP Cloud Functions 1을 호출해 보았습니다.

필요한 것


  • Twilio 계정
  • GCP 계정

  • 작업 개요



    1. GCP Cloud Functions 생성
    2. 흐름 수정
    3. 전화 수신시 설정
    4. 동작 확인

    1. GCP Cloud Functions 생성



    Cloud Datastore에 저장된 Todo 목록에서 오늘 분을 검색하고 일본어 메시지를 반환하는 함수를 만듭니다.
    함께 Todo 목록의 데이터를 Cloud Datastore에 등록합니다.

    Cloud Datastore 콘텐츠





    Cloud Functions 내용



    index.js
    const Datastore = require('@google-cloud/datastore');
    
    const datastore = new Datastore({
      projectId: 'プロジェクトID',
    });
    
    exports.todolist = (req, res) => {
      let today_JP = new Date();
      today_JP.setUTCHours(-9,0,0,0);
      let tomorrow_JP = new Date();
      tomorrow_JP.setUTCHours(-9,0,0,0);
      tomorrow_JP.setDate (tomorrow_JP.getDate() + 1);
    
      const query = datastore.createQuery('todo')
        .filter('開始時刻', '>=', today_JP)
        .filter('開始時刻', '<', tomorrow_JP)
        .order('開始時刻');
      query.run().then(results => {
          let message;
          const todolist = results[0];
          message = '本日の予定は'+todolist.length+'件です。'
    
          todolist.forEach(todo => {
            const task = todo['タスク'];
            let begin = todo['開始時刻'];
            let end = todo['終了時刻'];
    
            begin.setUTCHours(begin.getUTCHours() + 9)
            end.setUTCHours(end.getUTCHours() + 9)
            const begin_hour = begin.getUTCHours();
            const begin_min = begin.getUTCMinutes();
            const end_hour = end.getUTCHours();
            const end_min = end.getUTCMinutes();
    
            message = message
              + begin_hour + '' + begin_min + '' + 'から'
              + end_hour + '' + end_min + '' + 'まで'
              + task + 'の予定があります。';
          });
          message = message + '以上となります。'
          res.status(200).send(message);
        })
        .catch(err => {
          console.log(err);
          res.status(400).send('予定が取得できませんでした。');
        });
    };
    

    package.json
    {
      "name": "todolist",
      "version": "0.0.1",
      "dependencies": {
        "@google-cloud/datastore": "latest"
      }
    }
    

    2. 흐름 수정



    지난번 의 흐름도에서 수정합니다.

    수정 후 흐름도





    1. HTTP Request 배포



    1. HTTP Request를 오른쪽에서 선택하여 배치
    2. Split_1의 1과 접속
    3. Success를 say_play_2에 연결
    3. 다음 설정
    REQUEST METHOD: POST (GET에서도 가능)
    'REQUEST URL: Cloud Functions 트리거 URL 지정

    2. say_play_2 변경



    1. 이하로 변경
      TEXT TO SAY: {{widgets.http_1.body}}

    3. gather_1 변경



    1. 이하로 변경
    TEXT TO SAY: 오늘의 예정을 듣는 경우는 1을, 종료하는 경우는 2를 눌러 주세요.

    3. 전화 수신시 설정



    마지막 흐름을 변경한 경우에는 수정할 필요가 없습니다.
    새 플로우를 만든 경우 설정을 변경합니다.

    1. 왼쪽의 [SUPER NETWORK] - [Phone Numbers]를 선택
    2. 구입한 전화번호를 선택
    3. 아래와 같이 설정(작성한 플로우명이 test8의 경우)



    4. 동작 확인



    구입한 전화번호로 전화합니다. 다음과 같은 흐름이 되면 성공입니다.

    1. 「안녕하세요.(안녕하세요)」
    2. 「오늘의 예정을 듣는 경우는 1을, 종료하는 경우는 2를 눌러 주세요.」
    3. 1을 누른다/2를 누른다
    4. “오늘의 예정은 3건입니다.
    10시 0분부터 11시 0분까지 아키텍쳐의 리뷰회의 예정이 있습니다.
      13시 0분부터 13시 30분까지 도이 리오님 내사의 예정이 있습니다.
    15시 0분부터 16시 0분까지 GCP 온라인 세미나의 예정이 있습니다.
      이상이 됩니다. "
       /「종료합니다.」

    잡감


  • Twilio Studio와 FaaS의 궁합은 매우 좋다
  • GCP Cloud Functions에서의 인증은 코딩이 필요한 것 같습니다만, 여기변이 편해지면 좋다. (이번에는 고려하지 않습니다.)
  • htps : // c ぉ d. 오, ぇ. 코 m / 소 치온 s / 아테 펜치 카치온
  • 정규화된 URL이 자동으로 생성되어 HTTP Cloud Function에 할당됩니다. 누구나 이 URL에 HTTP(S) 요청을 발행하여 승인 없이 함수를 트리거할 수 있습니다.




  • 베타

    좋은 웹페이지 즐겨찾기