【GAS】Slack bot에서 대상자에게 일제히 연락 ※리마인드/개별 연락에 사용할 수 있어
9739 단어 슬랙slackbotGoogleAppsScriptgas
소개
Google Apps Script와 Slack Bot을 사용하여 대상에게 개별 연락처를 일괄 전송하는 방법에 대해 씁니다.
나의 일상(인사), 사원에게 힘차게 리마인드나 개별 연락을 하는 것이 많기 때문에, 편하게 할 수 있는 방법은 없을까 생각해 보았습니다.
GAS가 무엇인지, GAS에서 스크립트를 작성하는 방법 등은 일단 건드리지 않고 기재합니다.
단계 1/2. Slack의 incoming webhooks 주소를 가져옵니다.
먼저 bot 계정을 얻습니다. 여기 Slack incoming webhooks를 사용합니다.
이 기능을 사용하려면 먼저 Slack에서 대상 엔드포인트를 만들어야 합니다.
Slack 앱 페이지 에서 incoming-webhooks 를 선택합니다.
아래 이미지에 따라 페이지를 진행하고,
아래 페이지의 빨간색 테두리 링크를 복사하십시오. 나중에 사용합니다.
2/2단계. Google 스프레드시트와 문서를 준비합니다. 스크립트 작성
그런 다음 제출할 스프레드시트와 스크립트를 준비합니다.
먼저 아래 샘플에서 볼 수 있듯이 스프레드 시트와 문서를 복사하여 자신을 만드십시오.
샘플 URL
스프레드시트
htps : // / cs. 오, ぇ. 이 m/sp레 d 〇에 ts/d/1XBJX6지 5G3p 봐 D레 bqR-K m3오 XRJC7QL77 005지 ぇ포/에아 t? 우 sp = 샤린 g
배달 문서
htps : // / cs. 오, ぇ. 코 m / 도쿠 멘 t / d / 11200 케와 bjb 3 3 QdH1Z5 77 4jkt DThM y 6r65g ms / 에 t
그런 다음 스프레드시트의 스크립트 편집기를 열고 다음을 복사합니다.
덧붙여//★★★TODO★★★라고 써 있는 부분은 각각 적절히 수정해 주세요.
스크립트
qiita.jsvar sheet = SpreadsheetApp.getActiveSheet();
var postUrl = "xxxxxxxx"; // ★★★TODO★★★ 1.で取得したSlackのLinkを貼っつけてください
function postToSlack() {
var values = sheet.getDataRange().getValues();
// 文章を取得
var text = DocumentApp.openById('xxxxx') // ★★★TODO★★★ 配信するドキュメントのIDを記載
var letter = text.getText();
// values.shift();
for (var i = 3, l = values.length; i < l; i++) {
// 差し込み情報
var incertzero = values[i][1];
var incertone = values[i][2];
var incerttwo = values[i][3];
var message = letter.replace(/{0}/g,incertzero).replace(/{1}/g,incertone).replace(/{2}/g,incerttwo);
var username = values[i][0];
sendHttpPost(message, username);
sheet.getRange(i+1,5).setValue("Done");
}
}
function sendHttpPost(message, username)
{
var jsonData =
{
"channel" : username,
"username" : 'xxxx', //★★★TODO★★★ Botのアカウント名称を記載(なんでも良いです)
"text" : message
};
var payload = JSON.stringify(jsonData);
var options =
{
"method" : "post",
"contentType" : "application/json",
"payload" : payload
};
UrlFetchApp.fetch(postUrl, options);
}
송신 방법
여기까지 할 수 있으면 나머지는 보낼 뿐입니다.
1. 위의 Googe 문서로 보내려는 문장을 작성합니다.
2. 스프레드시트 A 열로 보내고 싶은 Slack 계정( @xxxx )과 Slack 페이지(#xxx)를 기재하십시오. 여러 줄을 나열할 수 있습니다.
3. 스크립트 편집기의 "postToSlack"을 실행.
이상으로 이미지와 같이 대상자에게 Slack을 일제히 송신할 수 있습니다.
몇가지 설명을 하고 있는 부분이 있습니다만, 의문이 있으면 언제라도 질문해 주세요.
Reference
이 문제에 관하여(【GAS】Slack bot에서 대상자에게 일제히 연락 ※리마인드/개별 연락에 사용할 수 있어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Ryoo1314/items/d91509c520d3ea8fd656
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
먼저 bot 계정을 얻습니다. 여기 Slack incoming webhooks를 사용합니다.
이 기능을 사용하려면 먼저 Slack에서 대상 엔드포인트를 만들어야 합니다.
Slack 앱 페이지 에서 incoming-webhooks 를 선택합니다.
아래 이미지에 따라 페이지를 진행하고,
아래 페이지의 빨간색 테두리 링크를 복사하십시오. 나중에 사용합니다.
2/2단계. Google 스프레드시트와 문서를 준비합니다. 스크립트 작성
그런 다음 제출할 스프레드시트와 스크립트를 준비합니다.
먼저 아래 샘플에서 볼 수 있듯이 스프레드 시트와 문서를 복사하여 자신을 만드십시오.
샘플 URL
스프레드시트
htps : // / cs. 오, ぇ. 이 m/sp레 d 〇에 ts/d/1XBJX6지 5G3p 봐 D레 bqR-K m3오 XRJC7QL77 005지 ぇ포/에아 t? 우 sp = 샤린 g
배달 문서
htps : // / cs. 오, ぇ. 코 m / 도쿠 멘 t / d / 11200 케와 bjb 3 3 QdH1Z5 77 4jkt DThM y 6r65g ms / 에 t
그런 다음 스프레드시트의 스크립트 편집기를 열고 다음을 복사합니다.
덧붙여//★★★TODO★★★라고 써 있는 부분은 각각 적절히 수정해 주세요.
스크립트
qiita.jsvar sheet = SpreadsheetApp.getActiveSheet();
var postUrl = "xxxxxxxx"; // ★★★TODO★★★ 1.で取得したSlackのLinkを貼っつけてください
function postToSlack() {
var values = sheet.getDataRange().getValues();
// 文章を取得
var text = DocumentApp.openById('xxxxx') // ★★★TODO★★★ 配信するドキュメントのIDを記載
var letter = text.getText();
// values.shift();
for (var i = 3, l = values.length; i < l; i++) {
// 差し込み情報
var incertzero = values[i][1];
var incertone = values[i][2];
var incerttwo = values[i][3];
var message = letter.replace(/{0}/g,incertzero).replace(/{1}/g,incertone).replace(/{2}/g,incerttwo);
var username = values[i][0];
sendHttpPost(message, username);
sheet.getRange(i+1,5).setValue("Done");
}
}
function sendHttpPost(message, username)
{
var jsonData =
{
"channel" : username,
"username" : 'xxxx', //★★★TODO★★★ Botのアカウント名称を記載(なんでも良いです)
"text" : message
};
var payload = JSON.stringify(jsonData);
var options =
{
"method" : "post",
"contentType" : "application/json",
"payload" : payload
};
UrlFetchApp.fetch(postUrl, options);
}
송신 방법
여기까지 할 수 있으면 나머지는 보낼 뿐입니다.
1. 위의 Googe 문서로 보내려는 문장을 작성합니다.
2. 스프레드시트 A 열로 보내고 싶은 Slack 계정( @xxxx )과 Slack 페이지(#xxx)를 기재하십시오. 여러 줄을 나열할 수 있습니다.
3. 스크립트 편집기의 "postToSlack"을 실행.
이상으로 이미지와 같이 대상자에게 Slack을 일제히 송신할 수 있습니다.
몇가지 설명을 하고 있는 부분이 있습니다만, 의문이 있으면 언제라도 질문해 주세요.
Reference
이 문제에 관하여(【GAS】Slack bot에서 대상자에게 일제히 연락 ※리마인드/개별 연락에 사용할 수 있어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Ryoo1314/items/d91509c520d3ea8fd656
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
var sheet = SpreadsheetApp.getActiveSheet();
var postUrl = "xxxxxxxx"; // ★★★TODO★★★ 1.で取得したSlackのLinkを貼っつけてください
function postToSlack() {
var values = sheet.getDataRange().getValues();
// 文章を取得
var text = DocumentApp.openById('xxxxx') // ★★★TODO★★★ 配信するドキュメントのIDを記載
var letter = text.getText();
// values.shift();
for (var i = 3, l = values.length; i < l; i++) {
// 差し込み情報
var incertzero = values[i][1];
var incertone = values[i][2];
var incerttwo = values[i][3];
var message = letter.replace(/{0}/g,incertzero).replace(/{1}/g,incertone).replace(/{2}/g,incerttwo);
var username = values[i][0];
sendHttpPost(message, username);
sheet.getRange(i+1,5).setValue("Done");
}
}
function sendHttpPost(message, username)
{
var jsonData =
{
"channel" : username,
"username" : 'xxxx', //★★★TODO★★★ Botのアカウント名称を記載(なんでも良いです)
"text" : message
};
var payload = JSON.stringify(jsonData);
var options =
{
"method" : "post",
"contentType" : "application/json",
"payload" : payload
};
UrlFetchApp.fetch(postUrl, options);
}
Reference
이 문제에 관하여(【GAS】Slack bot에서 대상자에게 일제히 연락 ※리마인드/개별 연락에 사용할 수 있어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Ryoo1314/items/d91509c520d3ea8fd656텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)