LineBot에서 Google 캘린더 일정 알림
소개
최근 LineBot 만드는 법을 공부하고 싶습니다.
여기에서는 다른 사람의 블로그에서 배운 것을했습니다. 만드는 방법과 코드를 재정리했습니다.
이번에는 LINE API 중 하나인 Messaging API와 Google Apps Script를 사용하여 LINE을 통해 Google 캘린더의 일정을 자동으로 알립니다.
1.LineBot 만들기
LINE 공식 계정(구 라인@) 만드는 방법을 참조하십시오.
2. Google 캘린더 ID 얻기
Google 캘린더 【설정】 → 【내 캘린더 설정】 → 【캘린더 통합】

지금까지 알림 Bot에 필요한 항목 3개 모두를 취득했습니다.
Your user ID
채널 액세스 토큰
캘린더 ID
3. 이벤트 알림 LineBot 구현
Google Apps Script를 새로 만들고 다음 코드를 붙여넣고
access_token
user_id
calendar_id
의 값을 씁니다.// LINE Messaging API: Channel access token
const access_token = '';
// LINE Your user ID
const user_id = '';
// Set your google calendar ID
const calendar_id = '';
function getGoogleCalendar() {
var today = new Date();
var myCalendar = CalendarApp.getCalendarById(calendar_id);
var myEvents = myCalendar.getEventsForDay(today);
var message = [];
if (myEvents.length == 0) {
message.push('There are no events today');
} else {
message.push('There are ' + myEvents.length + ' events today\n');
myEvents.forEach(function (event) {
var eventStartTime = event.getStartTime();
var eventEndTime = event.getEndTime();
eventStartTime = Utilities.formatDate(eventStartTime, 'JST', 'HH:mm');
eventEndTime = Utilities.formatDate(eventEndTime, 'JST', 'HH:mm');
if (event.getTitle()) {
message.push(
'\n' +
event.getTitle() +
'\n' +
'今日 from ' +
eventStartTime +
' to ' +
eventEndTime +
'\n'
);
}
if (event.getDescription()) {
message.push(event.getDescription() + '\n');
}
});
message.push('https://calendar.google.com/calendar/u/0/gp?hl=ja');
}
message = message.join('');
return postMessage(message);
}
// method for post message to LINE
function postMessage(message) {
// var url = 'https://api.line.me/v2/bot/message/push'; // Send broadcast message API (all following users without user_id)
var url = 'https://api.line.me/v2/bot/message/broadcast'; // Sends a push message to a user, group, or room API
var headers = {
'Content-Type': 'application/json; charset=UTF-8',
Authorization: 'Bearer ' + access_token,
};
var postData = {
to: user_id,
// to: user_id,
messages: [
{
type: 'text',
text: message,
},
],
};
var options = {
method: 'post',
headers: headers,
payload: JSON.stringify(postData),
};
return UrlFetchApp.fetch(url, options);
}
참고 : 모든 팔로워에게 보내고 싶다면 대상 ID가 필요하지 않으므로 53과 61 줄 대신 52와 62 줄의 코드를 사용할 수 있습니다.
4. 실행 결과 확인
스크린샷(이벤트 있음·없음)

5. 자동으로 게시 실행
트리거를 걸다

정시적으로 당일 이벤트 게시

6.Source Code (GitHub)
참조 사이트
Reference
이 문제에 관하여(LineBot에서 Google 캘린더 일정 알림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/zhaoshibo/items/811a167b17901409588b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)