Google Apps Script로 Slack과 Google 스프레드시트 연동하기
Google Apps Script와 Slack API를 사용하여 Google 스프레드시트의 데이터를 Slack으로 보내거나, Slack의 데이터를 스프레드시트로 가져오는 방법을 소개합니다. Zapier와 같은 외부 툴을 사용하지 않고, Google Apps Script로 직접 자동화하는 방법을 선호하는 분들께 도움이 될 것입니다.
1. Slack API 설정
먼저, Slack API를 설정해야 합니다.
1-1. Slack 앱 생성
- Slack API에 접속하여 새로운 앱을 만듭니다.
- 앱을 만들 워크스페이스를 선택하고, 앱 이름을 지정합니다.
- 앱이 생성되면 OAuth & Permissions로 이동하여 권한을 추가합니다.
chat:write
권한을 추가하여 Slack 채널에 메시지를 보낼 수 있게 설정합니다.
1-2. OAuth 토큰 발급
- OAuth & Permissions에서 Install App to Workspace를 클릭하여 앱을 설치하고 OAuth 토큰을 발급받습니다.
- 발급된 OAuth 토큰을 나중에 사용할 수 있도록 메모해 둡니다.
2. Google Apps Script 코드 작성
Google 스프레드시트에서 Google Apps Script를 사용하여 Slack에 메시지를 보낼 수 있도록 코드를 작성합니다.
2-1. 스크립트 편집기 열기
- Google 스프레드시트에서 도구 > 스크립트 편집기를 클릭합니다.
- 새로운 프로젝트가 생성되면 아래 코드를 추가합니다.
2-2. Slack 메시지 전송 코드
function sendMessageToSlack() {
var url = "https://slack.com/api/chat.postMessage";
var token = "xoxb-your-slack-token"; // 발급받은 OAuth 토큰
var channel = "#your-channel"; // 메시지를 보낼 Slack 채널
var message = "Google 스프레드시트에서 Slack으로 보내는 메시지입니다!";
var payload = {
token: token,
channel: channel,
text: message,
};
var options = {
method: "post",
contentType: "application/json",
payload: JSON.stringify(payload),
headers: {
"Authorization": "Bearer " + token,
}
};
UrlFetchApp.fetch(url, options);
}
- token: Slack에서 발급받은 OAuth 토큰을 입력합니다.
- channel: 메시지를 보낼 Slack 채널을 지정합니다. 예를 들어 #general처럼 채널 이름을 지정할 수 있습니다.
- message: Slack에 보낼 메시지를 작성합니다.
2-3. 트리거 설정 (선택 사항)
트리거를 설정하면 특정 이벤트가 발생할 때 Slack으로 자동으로 메시지를 보낼 수 있습니다. 예를 들어 스프레드시트의 셀이 변경될 때 자동으로 Slack 알림이 가게 할 수 있습니다.
스크립트 편집기에서 트리거 메뉴를 열고, sendMessageToSlack 함수를 원하는 이벤트에 연결합니다. (예: 스프레드시트 수정 시)3. 스크립트 테스트 및 실행
작성한 sendMessageToSlack 함수를 직접 실행하여 Slack 채널로 메시지가 잘 전송되는지 확인합니다.
에러가 발생하지 않는지 확인하고, 슬랙 채널에서 메시지가 잘 전송되었는지 확인합니다.4. 추가 기능
Google Apps Script를 활용하면 Slack과 Google 스프레드시트 간의 다양한 작업을 자동화할 수 있습니다. 몇 가지 예시를 추가할 수 있습니다.
4-1. 스프레드시트 데이터 슬랙으로 전송
스프레드시트에 있는 데이터를 Slack으로 보낼 수도 있습니다. 예를 들어 특정 셀의 값을 Slack 메시지로 전송하는 코드를 작성할 수 있습니다.
function sendSheetDataToSlack() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getRange("A1").getValue(); // A1 셀의 데이터 가져오기
var message = "스프레드시트 데이터: " + data;
sendMessageToSlack(message); // 앞서 작성한 sendMessageToSlack 함수 호출
}
4-2. 슬랙의 데이터를 스프레드시트로 가져오기
Slack API를 통해 Slack의 데이터를 가져와 스프레드시트에 기록하는 방법도 가능합니다. 예를 들어, Slack 채널의 메시지를 스프레드시트로 저장할 수 있습니다.
이 글에서는 Google Apps Script를 사용해 Slack과 Google 스프레드시트를 연동하는 방법을 알아보았습니다. 이 자동화를 통해 작업을 간편하게 할 수 있고, 다양한 추가 기능을 통해 연동 가능성을 확장할 수 있습니다.