Skip to content

hopsoffice/gather-webhook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gather webhook

gather.town 웹사이트 인터랙션을 통해 슬랙과 통합합니다.

필요한 프로그램

  • Python 3.8
  • AWS 계정: 당장은 배포를 손으로해야하므로
  • 슬랙 웹훅

설치

팀을 위한 설정이 필요합니다. resource.json.tmplresource.json으로 복사합니다.

$ cp resource.json.tmpl resource.json

팀원 이름과 채팅을 전달하고 싶은 채널의 수신 웹후크을 만들어서 "slack_hook"에 넣어주세요.

$ cat resource.json
{
    "teamMates": ["someone", "likes", "you"],
    "slack_hook": "...."
}

구글 연동을 위해 아래의 값들이 필요합니다.

{
    ...
    "google": {
      "client_id": "",
      "client_secret": "",
      "project_id": "",
      "scopes": [
            "https://www.googleapis.com/auth/calendar",
      ],
      "work_calendar_id": ""
    },
    "token_bucket_name": "",
    ..
}

Google Cloud API에서 프로젝트를 만들고 OAuth Application을 만들어서 client_id, client_secret, project_id를 설정해주세요. 인증 토큰을 저장하기 위해 s3를 사용합니다. s3에 버켓을 만들고 token_bucket_name에 이름을 채워주세요.

배포 이후에 /auth/에 접속하면 구글 캘린더 연동을 사용할 수 있습니다.

자파 배포의 필요한 설정과 라이브러리를 설치합니다. install.sh에서 zappa_settings.json을 생성하니 참고해주세요.

$ python -m venv .venv
$ ./scripts/install.sh

배포

위 설치 과정을 거쳐서 처음 배포를 진행한다면 아래의 커맨드로 실행하면됩니다.

$ zappa deploy dev

처음 배포 이후엔 대부분의 경우 코드를 고치고 업데이트만 하면됩니다.

$ zappa update dev

API

/auth/

구글 캘린더 연동을 위해서 사용자의 구글 아이디로 토큰을 발급합니다. OAuth Application 설정 이후 최초 1회 실행하면됩니다.

/force-refresh/

구글 캘린더 연동을 위해서 사용자의 구글 아이디로 토큰을 새로 발급합니다. OAuth Application 설정 이후 뭔가 잘안되면 실행해주세요.

/return/<이름>/

"이름"님이 자리로 돌아옴을 슬랙 채널에 알립니다. 리소스의 .["message"]["return"] 값을 바꾸어 커스텀 메시지로 바꿀 수 있습니다.

/calendar/

"이름"님이 근무를 시작함을 구글 캘린더에 연동하고 슬랙 채널에 알립니다. 리소스의 .["message"]["start"] 값을 바꾸어 커스텀 메시지로 바꿀 수 있습니다.

/start/<이름>/

  • /calendar/를 사용하면 구글 캘린더와 연동할 수 있습니다. 이 API는 슬랙 알림만 전송됩니다.

"이름"님이 근무를 시작함을 슬랙 채널에 알립니다. 리소스의 .["message"]["start"] 값을 바꾸어 커스텀 메시지로 바꿀 수 있습니다.

/end/<이름>/

"이름"님이 근무를 종료함을 슬랙 채널에 알립니다. 리소스의 .["message"]["end"] 값을 바꾸어 커스텀 메시지로 바꿀 수 있습니다.

/eat/

팀원들이 밥을 먹으러 갈때 사용할 수 있는 메뉴입니다. .["teamMates"] 값을 가지고 팀원들 이름을 만들기 떄문에 값 설정을 꼭 해야합니다.

/rest/

팀원들이 쉬러 갈때 사용할 수 있는 메뉴입니다. .["teamMates"] 값을 가지고 팀원들 이름을 만들기 떄문에 값 설정을 꼭 해야합니다.

/do/

팀원들이 아무말이나 적고 자리를 비울때 사용할 수 있는 메뉴입니다. .["teamMates"] 값을 가지고 팀원들 이름을 만들기 떄문에 값 설정을 꼭 해야합니다.

게더타운 준비

이제 모든 준비가 끝났다면, 게더타운에서 오브젝트를 만들때 자파로 배포한 어플리케이션의 주소를 이용하여 하고 싶은 액션에 따라 주소를 바꾸면됩니다.

예를 들어 https://some-api-gateway.aws.amazone.com/dev/가 자파로 배포된 어플리케이션의 주소라면, https://some-api-gateway.aws.amazone.com/dev/start/Ed/ 라는 웹사이트 주소를 오브젝트에 적어주면 슬랙채널에 알림이 가게됩니다.

웹사이트 임베드에 대해서 모르신다면, 게더타운 페이지에서 "Embedded Websites" 항목을 참고해주세요.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published