GAS (Google Apps Script)를 사용하여 Google 캘린더 정보를 연결하는 LINEbot을 만드는 방법
이번에 사용하는 것
LINE developers
LINE developers 계정은 여기 에서 평소 사용하고 있는 LINE 계정으로 로그인할 수 있습니다.
로그인할 수 있으면 공급자를 만듭니다.
그런 다음 새 채널을 만듭니다. 채널 유형은 "Messaging API"를 선택하십시오.
또한 채널의 Messaging API 설정에서 채널 액세스 토큰을 발급합니다.
이번 bot에서는, 이하의 2점을 사용합니다.
Google 캘린더
통지할 캘린더의 캘린더 ID를 가져옵니다.
캘린더 ID는 캘린더 설정에 설명되어 있습니다.
↓
※물론 개인의 캘린더에서도 가능합니다.
GAS
마지막으로 GAS로 캘린더의 정보를 취득해 와서 LINE에 메시지를 보내는 처리를 써갑니다.
여기 에서 GAS의 새 프로젝트를 만들고 편집기 부분에 다음 코드를 씁니다.
var access_token = '<チャネルアクセストークン>';
var userID = '<ユーザID>';
var url = 'https://api.line.me/v2/bot/message/push';
function get_calendar(event_push){
var today = new Date();
var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() +1);
var calendar_ID = '<カレンダーID>';
var calendar_get = CalendarApp.getCalendarById(calendar_ID);
var events = calendar_get1.getEventsForDay(tomorrow);
var event_push = [];
for(var i in events){
var event = events[i].getTitle();
event_push.push(event);
}
return event_push;
}
function push_test() {
var event_push = get_calendar();
var event_message = '';
event_message = '明日の予定は、';
if(!event_push.length){ //←空白判定
event_message += '特にありません。';
}else{
for(var k =0; k < event_push.length; k++){
event_message += event_push[k];
if(k+1 < event_push.length){
event_message += '、';
}
}
event_message += 'です。';
}
var headers = {
'Content-Type':'application/json; charset = UTF-8',
'Authorization':'Bearer ' + access_token
}
var options = {
'headers':headers,
'method':'post',
'payload':JSON.stringify({
'to':userID,
'messages':[{
'type':'text',
'text':event_message
}]
})
};
UrlFetchApp.fetch(url, options);
}
bot 스크립트가 생성되면 게시 > 웹 애플리케이션으로 배포에서 웹 앱 URL을 배포하고 게시합니다.
↑에서 발행한 web app URL을 LINE Developers의 「Messaging API 설정 > Webhook 설정」 부분으로 설정하고, 「webhook의 이용」을 ON으로 합니다.
마지막으로 Messaging API 설정의 QR 코드를 사용하여 LINE 앱으로 친구 추가하면 준비 완료입니다!
GAS의 'push_test'함수를 사용해 보면 이런 방식으로 내일 일정이 LINE으로 보내지면 성공입니다!
"push_test"의 함수를 원하는 시간에 트리거로 설정하면 매일 정해진 시간대에 내일의 예정을 반영구적으로 자동으로 알려줍니다.
마지막으로
이번은 캘린더에 등록되어 있는 예정의 타이틀만을 취하고 있습니다만, 예정의 시간이나 내용을 취해 오거나, 스프레드시트의 정보를 제휴할 수도 있고,
보낸 메시지에 대답해 주는 본격적인 bot를 작성하는 것도 가능하기 때문에 여러가지 사용법(놀이 방법?)을 할 수 있을 것 같습니다.
물론 무료. 좋아요. .
참고 기사
마지막으로 GAS로 캘린더의 정보를 취득해 와서 LINE에 메시지를 보내는 처리를 써갑니다.
여기 에서 GAS의 새 프로젝트를 만들고 편집기 부분에 다음 코드를 씁니다.
var access_token = '<チャネルアクセストークン>';
var userID = '<ユーザID>';
var url = 'https://api.line.me/v2/bot/message/push';
function get_calendar(event_push){
var today = new Date();
var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() +1);
var calendar_ID = '<カレンダーID>';
var calendar_get = CalendarApp.getCalendarById(calendar_ID);
var events = calendar_get1.getEventsForDay(tomorrow);
var event_push = [];
for(var i in events){
var event = events[i].getTitle();
event_push.push(event);
}
return event_push;
}
function push_test() {
var event_push = get_calendar();
var event_message = '';
event_message = '明日の予定は、';
if(!event_push.length){ //←空白判定
event_message += '特にありません。';
}else{
for(var k =0; k < event_push.length; k++){
event_message += event_push[k];
if(k+1 < event_push.length){
event_message += '、';
}
}
event_message += 'です。';
}
var headers = {
'Content-Type':'application/json; charset = UTF-8',
'Authorization':'Bearer ' + access_token
}
var options = {
'headers':headers,
'method':'post',
'payload':JSON.stringify({
'to':userID,
'messages':[{
'type':'text',
'text':event_message
}]
})
};
UrlFetchApp.fetch(url, options);
}
bot 스크립트가 생성되면 게시 > 웹 애플리케이션으로 배포에서 웹 앱 URL을 배포하고 게시합니다.
↑에서 발행한 web app URL을 LINE Developers의 「Messaging API 설정 > Webhook 설정」 부분으로 설정하고, 「webhook의 이용」을 ON으로 합니다.
마지막으로 Messaging API 설정의 QR 코드를 사용하여 LINE 앱으로 친구 추가하면 준비 완료입니다!
GAS의 'push_test'함수를 사용해 보면 이런 방식으로 내일 일정이 LINE으로 보내지면 성공입니다!
"push_test"의 함수를 원하는 시간에 트리거로 설정하면 매일 정해진 시간대에 내일의 예정을 반영구적으로 자동으로 알려줍니다.
마지막으로
이번은 캘린더에 등록되어 있는 예정의 타이틀만을 취하고 있습니다만, 예정의 시간이나 내용을 취해 오거나, 스프레드시트의 정보를 제휴할 수도 있고,
보낸 메시지에 대답해 주는 본격적인 bot를 작성하는 것도 가능하기 때문에 여러가지 사용법(놀이 방법?)을 할 수 있을 것 같습니다.
물론 무료. 좋아요. .
참고 기사
Reference
이 문제에 관하여(GAS (Google Apps Script)를 사용하여 Google 캘린더 정보를 연결하는 LINEbot을 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kokoko_21/items/ae5fa22ec6646c099748텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)