GAS에서 자동 알림 도구를 개발할 때의 메모
일순간, IFTTT로 어떻게든 상당히 생각하고 있었습니다만, 스크래핑적인 일을 할 필요가 있었으므로 GAS를 끼웠습니다.
(GAS의 트리거가 cron적인 일을 해 주어 최고!
처리 개요
메모
스크립트 잠금
스크립트를 잠그고 다중 실행을 방지합니다.
var lock = LockService.getScriptLock();
스크립트의 잠금 상태를 확인하고 후속 처리를 수행합니다.
if (lock.tryLock(1000)) // 引数はタイムアウトするまでの秒数
{
// 処理を実行
exec();
// ロック解除
lock.releaseLock();
}
else
{
// ポップアップを表示
Browser.msgBox("現在、別の処理が実行中の為、実行できませんでした。\\n\\n時間をおいて、再度実行して下さい。");
}
Gmail 협력
Gmail을 지정한 검색 문자열로 검색하여 스레드 검색
// 検索文字列
var search_string = "is:unread ";
var threads = GmailApp.search(search_string, 0, 500);
thread의 내용을 확인, 독해 처리를 실행한다
for (var i = 0; i < threads.length; i++)
{
var msgs = GmailApp.getMessagesForThread(threads[i]);
for (var j = 0; j < msgs.length; j++)
{
var tmpBody = msgs[j].getBody();
Logger.log(tmpBody);
// スクレイピング的に文字列を取得、使用する処理
hoge(tmpBody);
}
// 既読にする
threads[i].markRead();
}
범용
시간 취득
Asia/Tokyo
yyyy/M/d
var endDate = Utilities.formatDate(sheet.getRange('A1').getValue(), 'Asia/Tokyo', 'yyyy/M/d');
지정된 범위의 최종 입력 행을 가져옵니다.
var lastRowNumRangeAA = sheet.getRange('A:A').getValues().filter(String).length;
지정된 범위의 값을 취득해 배열화
var values = sheet.getRange('A1:A1000').getValues();
values = Array.prototype.concat.apply([],values);
채팅 워크 API 실행
태스크화
var CHATWORK_API_TOKEN = "hogehoge";
// 期限は現在日時
var limit = Math.floor( (new Date()).getTime() / 1000 ) ;
// 期限タイプ(none, date, time)
var limit_type = "time";
var method = "post";
var room_id = 11111111;
var body = encodeURI("メールを確認して下さい。\n※期限 : " + endDate + "まで※");
var to_ids = user_ids;
var url = "https://api.chatwork.com/v2/rooms/"+room_id+"/tasks?body="+body+"&limit="+limit+"&limit_type="+limit_type+"&to_ids="+to_ids;
execChatworkApi(method, url);
function execChatworkApi(method, url)
{
var _url = url;
var _method = method;
var params = {
headers : {"X-ChatWorkToken" : CHATWORK_API_TOKEN},
method : _method
};
var strResponse = UrlFetchApp.fetch(_url, params);
var json = JSON.parse(strResponse.getContentText());
return json;
}
정기 실행 설정
GAS 실행 계정 마이그레이션
참고
다음
let
라든지 const
를 사용하고 싶다 (var
는 사용하고 싶지 않다. )Reference
이 문제에 관하여(GAS에서 자동 알림 도구를 개발할 때의 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hfuruya/items/ba58b41d2b7908c27eb4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)