Google 스프레드시트와 웹후크가 내 삶을 더 쉽게 만들어준 방법

저는 기술 지원 부서에서 일하고 있으며 Google 스프레드시트를 사용하여 반복 작업을 자동화할 수 있었습니다.

이것은 Google 채팅을 사용하는 다양한 팀에 메시지를 푸시하는 데 도움이 되었습니다. Google 채팅에 있는 Webhook 옵션은 놀랍습니다.

목표는 사건(중단)을 추적한 다음 Google Sheets Simple Triggers에 대해 알기 전에 수동으로 여러 팀에 알림을 푸시하는 것이었습니다.

다음은 시작하는 데 도움이 될 수 있는 몇 가지 링크입니다.

How to Build Apps using Google App Script
Read more about Google Sheets Triggers here
Read more about Google Chat Incoming webhooks

이제 특정 셀에 데이터를 입력하기만 하면 onEdit() 함수가 데이터를 읽고 필요한 대화방에 게시합니다.

에서 트리거를 추가해야 합니다.
Google Scripts

충분한 이야기! 코드를 보여주세요!

function myEditNew(e) {
// The e is an event Object
//https://developers.google.com/apps-script/guides/triggers/events

if (e.value)
{
Logger.log(e.range);

Logger.log("Data: "+e.value);

var val=e.value;
// This function is to get the current user that created the task its documented in the Gist at the end of the post
var cur_user=getCurrentUserEmail();

var text = Utilities.formatString('Incident created by *%s*: ```

%s

``` <users/all>',cur_user,val);
}

//1. Bot Test room
// [Args[Webhook URL, Space Name, Thread Name]]

// To get the Thread ID read this Stackoverflow answer

// https://webapps.stackexchange.com/questions/117392/get-link-to-specific-conversation-thread-and-or-message-in-a-chat-room-in-google

var urls = [
  [
   "https://chat.googleapis.com/v1/spaces/room_id/messages?key=Webhook_ID",
   "spaces/room_id/messages/space_name.space_name",
   "spaces/Thread_ID/threads/Thread_ID"
   ],

];

// Lots of Logging to see if Things are working properly.
Logger.log(e.range.getA1Notation());
Logger.log(e.range.getColumn());
Logger.log(val);


if (e.range.getA1Notation().startsWith('C') && val != "")
{
// Synchronously Post it to the Rooms
for(i=0;i<urls.length;i++)
{
var payload={
  "name":urls[i][1],
  "thread":{
    "name":urls[i][2]
  },
  "text":text
};
var options = {
  'method' : 'post',
  'contentType': 'application/json',
  // Convert the JavaScript object to a JSON string.
  'payload' : JSON.stringify(payload)
};
Logger.log(options);

// UrlFetchApp Documentation
// https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app
var response = UrlFetchApp.fetch(urls[i][0], options);
Logger.log(response);

}

}
}


Github Gist of the entire code

읽어 주셔서 감사합니다. 이 기사가 마음에 들면 언제든지 공유해 주세요. 저는 건설적인 피드백과 비판에 열려 있습니다. 댓글이나 메시지를 남겨주세요.

좋은 웹페이지 즐겨찾기