Gmail에 오는 Connpass 알림을 좋은 느낌으로 Slack에게 알림
소개
Connpass의 통지, 좋은 가감 메일 이외에도 대응해 주었으면 한다....
Slack이라고까지는 말하지 않기 때문에 적어도 LINE도 옵션으로 취할 수 있도록 해 주었으면 ...
그런 욕망이 있습니까?
네, 예를 들어 예제처럼 GAS로 만들었습니다.
이 스크립트에서는,
이런 느낌의 버튼이 포함된 메일
이런 식으로 Slack에게 알립니다.
반대로 말하면 예제 버튼이 포함되어 있지 않은 사람은 대상에서 제외되므로주의하십시오.
(그런 것은 싫다!라는 사람은 스크립트를 만져주세요)
Gmail 설정하기
그렇다고 해도 2 가지만
그렇다고 해도 2 가지만
필터 구체적인 설정은 ↓와 같은 느낌
이제 Gmail 측은 준비 완료
Slack의 Incoming Webhooks 설정하기
「Slack Incoming Webhook」로 구그하면 정보 나오므로 자세한 것은 할애.
여기에서 통보하고 싶은 채널, BOT의 이름, 아이콘을 적당하게 설정한다.
덧붙여서 아이콘은 공식이 API의 일부로서 공개하고 있으므로 사용하면 좋을지도.
htps : // 곤파 s. 코 m/아보 t/아피/
발행된 Webhook의 URL은 나중에 사용하므로 복사해 두고, 탭을 열어 둔다.
GAS를 사용하여 정기 점검 스크립트 작성
GoogleDrive에 GAS 프로젝트 만들기
그 만마. 이름은 선택적으로.
그런 다음 여기에 스크립트가 있으므로 main.gs
를 복사하여 붙여 넣습니다.
htps : // 기주 b. 코 m / 키치 케 이스케 / 곤뽀 s의 치후에 r
Const의 정의 작성
데이터 저장을 위한 하나의 스프레드시트를 생성한다. 시트 이름을 data
로 설정
스프레드시트 URL의 Id(↓의 XXX 부분)를 복사하여 Const
의 spreadSheetId
로 설정https://docs.google.com/spreadsheets/d/XXXXXXXXXXXXXXXXXX/edit#gid=0
Incoming Webhook에서 게시한 URL을 Const
의 webhookurl
에 붙여넣기
스크립트의 정기 실행 설정
「GAS 정기 실행」으로 구그하면 나오므로 자세한 것은 할애.
정기 실행에 지정하는 함수는 timer()
. 대체로 1시간 정도로 좋을지도.
기술적인 이야기
라고 해도 Gmail의 액세스는 GAS가 디폴트로 할 수 있어 버리므로, 거의 소스를 읽으면(아마) 알 수 있는 레벨.
버튼의 부분을 판정하고 있는 처리는 메일의 Body로부터 정규 표현으로 해당하는 텍스트 부분을 추출하고 있는 느낌. 구체적으로 다음 부분
var messages = thread.getMessages();
var message = messages[0];
var subject = message.getSubject();
var body = message.getBody();
var url = body.match(/<a href="https:\/\/.+\.connpass\.com\/event\/.+\/.+utm_content=detail_btn"/);
if(url != null) {
url = url[0].substring('<a href="'.length, url[0].lastIndexOf('/') + 1);
var msg = "*" + subject + "* \n" + url;
postToSlack(msg);
}
또, 전부의 메일을 판정 대상으로 하면 무거워질 것이 예상되었기 때문에, 전회 체크로부터 이번 체크의 사이에 수신한 메일 20건을 대상으로 하고 있다.
끝에
모두 설정이 끝나면 이벤트가 발생하면 이런 느낌으로 알림이 온다.
Reference
이 문제에 관하여(Gmail에 오는 Connpass 알림을 좋은 느낌으로 Slack에게 알림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/k_keisuke/items/072086fa760300ac060b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
GoogleDrive에 GAS 프로젝트 만들기
그 만마. 이름은 선택적으로.
그런 다음 여기에 스크립트가 있으므로
main.gs
를 복사하여 붙여 넣습니다.htps : // 기주 b. 코 m / 키치 케 이스케 / 곤뽀 s의 치후에 r
Const의 정의 작성
데이터 저장을 위한 하나의 스프레드시트를 생성한다. 시트 이름을
data
로 설정스프레드시트 URL의 Id(↓의 XXX 부분)를 복사하여
Const
의 spreadSheetId
로 설정https://docs.google.com/spreadsheets/d/XXXXXXXXXXXXXXXXXX/edit#gid=0
Incoming Webhook에서 게시한 URL을
Const
의 webhookurl
에 붙여넣기스크립트의 정기 실행 설정
「GAS 정기 실행」으로 구그하면 나오므로 자세한 것은 할애.
정기 실행에 지정하는 함수는
timer()
. 대체로 1시간 정도로 좋을지도.기술적인 이야기
라고 해도 Gmail의 액세스는 GAS가 디폴트로 할 수 있어 버리므로, 거의 소스를 읽으면(아마) 알 수 있는 레벨.
버튼의 부분을 판정하고 있는 처리는 메일의 Body로부터 정규 표현으로 해당하는 텍스트 부분을 추출하고 있는 느낌. 구체적으로 다음 부분
var messages = thread.getMessages();
var message = messages[0];
var subject = message.getSubject();
var body = message.getBody();
var url = body.match(/<a href="https:\/\/.+\.connpass\.com\/event\/.+\/.+utm_content=detail_btn"/);
if(url != null) {
url = url[0].substring('<a href="'.length, url[0].lastIndexOf('/') + 1);
var msg = "*" + subject + "* \n" + url;
postToSlack(msg);
}
또, 전부의 메일을 판정 대상으로 하면 무거워질 것이 예상되었기 때문에, 전회 체크로부터 이번 체크의 사이에 수신한 메일 20건을 대상으로 하고 있다.
끝에
모두 설정이 끝나면 이벤트가 발생하면 이런 느낌으로 알림이 온다.
Reference
이 문제에 관하여(Gmail에 오는 Connpass 알림을 좋은 느낌으로 Slack에게 알림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/k_keisuke/items/072086fa760300ac060b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
var messages = thread.getMessages();
var message = messages[0];
var subject = message.getSubject();
var body = message.getBody();
var url = body.match(/<a href="https:\/\/.+\.connpass\.com\/event\/.+\/.+utm_content=detail_btn"/);
if(url != null) {
url = url[0].substring('<a href="'.length, url[0].lastIndexOf('/') + 1);
var msg = "*" + subject + "* \n" + url;
postToSlack(msg);
}
모두 설정이 끝나면 이벤트가 발생하면 이런 느낌으로 알림이 온다.
Reference
이 문제에 관하여(Gmail에 오는 Connpass 알림을 좋은 느낌으로 Slack에게 알림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/k_keisuke/items/072086fa760300ac060b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)