Google Apps Script를 사용하여 Google Drive의 변경 통지 받기
!
다음은 clasp 및 TypeScript를 사용합니다.
구글 드라이브의 변경 통지는
대충 쓰면'Google Drive의 드라이브와 파일이 변경되었을 때 웹훅을 통해 알림을 받는다'는 기능이다.
자세한 내용은 모두 던지고 다음 글은 참고할 수 있다.
Google Apps Script 항목 설정
변경 통지Google Drive API를 받기 위해서는 다음과 같은 설정이 필요합니다.
appsscript.json
.appsscript.json
{
"timezone": "america/new_york",
"dependencies": {
"enabledadvancedservices": [
{
"usersymbol": "drive",
"version": "v2",
"serviceid": "drive"
}
]
},
"exceptionlogging": "stackdriver",
"runtimeversion": "v8",
"webapp": {
"executeas": "user_deploying",
"access": "anyone_anonymous"
}
}
Google Drive에서 변경 공지를 받는 코드
기본적으로 상술한 글에서 Go의 코드는 Google Apps Script에 기술되지만 특정한 대응(처리 요청 페이지 눈썹 등)이 필요하다.
이번에도 드라이브 전체를 처리하고 싶은 게 있어서 다음과 같은 일을 했습니다.
startPageToken
등 스크립트 속성에 저장진행하지 않음
X-Goog-Resource-State
에서의 통지의 종류 판정대체
doPost
의e.postData.contents
에 따라 판정채널의 유효기간 대책으로 지정된 시간의 촉발을 통해 채널을 재제작하다
파일 이름과 id를 수정 기록으로 전자 표에 쓰기
startPageToken
장애를 방지하기 위해 스크립트를 통해 제어 순서 잠금실제로 받아볼게요.
프로젝트와 코드가 준비되어 있으니 변경 통지를 받아 보세요.
스프레드시트
알림 파일 이름을 포함하는 전자 표를 만들고 id와 작업표 이름을 기록합니다.
프로그램 및 설정
git clone https://github.com/hankei6km/test-drive-chages.git . && npm install
클론 웨어하우스clasp create
으로 웹pp 스크립트 만들기clasp push
및 clasp deploy
로 디버깅 만들기▶ 그림 복사 4-1 URL
그런 다음 스크립트 속성에 다음 내용을 설정합니다.
address
- 프로그램을 풀 URLsheet_id
- 스프레드시트의 idsheet_name
- 워크시트 이름수신 시작
스크립트 편집기에서 함수
reset()
를 실행할 때 Google Drive 에서 알림을 보냅니다.드라이브의 파일을 변경하면 파일 이름 및 id
가 스프레드시트에 기록됩니다.▶ 그림4-2 업데이트된 상황을 스프레드시트에 쓰기
영구화
채널보다 유효기간이 짧은 간격(이번 코드는 31분)으로 실행
reset()
함수를 실행하면 영구적으로 수신할 수 있다.접수 종료
확인이 끝난 후
stop()
함수를 실행하고 채널을 버립니다.로그 표시
이번에는 스프레드시트를 작성했지만 통상
console.log
등을 쓴다.그러나 자신 이외의 사람이 요청한 POST 실행 함수는 로그 내용을 확인할 수 없습니다.GCP 프로젝트로 변경할 수 있지만 이번에는 생략합니다. (검색하면 바로 방법을 찾을 수 있습니다.)
끝말
Google Drive의 변경 통지는 Google Apps Script에서 접수되었다.
1일 정도 코드를 이동해보니 자신의 사용법은 펑크 없이 대체로 변경[2]이 감지됐다.
이렇게 해서Google Apps Script 파일의 변경도 쉽게 처리되고 제작 중인 도구도 변경된 파일을 거의 실시간으로 조작할 수 있다.
각주
처음에는 시간 지정을 사용했지만 편집 후 한동안 업데이트가 되지 않아 역시나 위화감이 컸다.↩︎
알림에throttle 처리가 들어간 것 같아서 빠질 거예요.↩︎
Reference
이 문제에 관하여(Google Apps Script를 사용하여 Google Drive의 변경 통지 받기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/hankei6km/articles/receive-google-drive-chages-notifications-by-gas텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)