트윌리오 스튜디오를 만져 보았다 2
필요한 것
작업 개요
1. GCP Cloud Functions 생성
2. 흐름 수정
3. 전화 수신시 설정
4. 동작 확인
1. GCP Cloud Functions 생성
Cloud Datastore에 저장된 Todo 목록에서 오늘 분을 검색하고 일본어 메시지를 반환하는 함수를 만듭니다.
함께 Todo 목록의 데이터를 Cloud Datastore에 등록합니다.
Cloud Datastore 콘텐츠
Cloud Functions 내용
index.jsconst 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 온라인 세미나의 예정이 있습니다.
이상이 됩니다. "
/「종료합니다.」
잡감
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 온라인 세미나의 예정이 있습니다.
이상이 됩니다. "
/「종료합니다.」
잡감
마지막 흐름을 변경한 경우에는 수정할 필요가 없습니다.
새 플로우를 만든 경우 설정을 변경합니다.
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 온라인 세미나의 예정이 있습니다.
이상이 됩니다. "
/「종료합니다.」
잡감
베타 ↩
Reference
이 문제에 관하여(트윌리오 스튜디오를 만져 보았다 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sirotosiko/items/55d492a2b00513d6a214텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)