【 Slack Bot 】 채널이 작성되면 통지하자!
9051 단어 람다파이썬APIGateway슬랙AWS
API Gateway와 Lambda 설정
AWS의 Lambda, API Gateway에 대해서는 과거의 htps : // m / ymktmk_t / ms / 7, d4, 63, 62795, b2418b에 세세한 것을 쓰고 있으므로 동일하게 설정해 보세요.
에서 시작! !
Slack App 만들기
htps : // 아피. scck. 코m/ 로 이동하여 Create a custom app 를 누른 다음 Create New App 을 누릅니다. 그러면 아래 이미지와 같은 화면으로 전환할까 생각합니다.
"App Name"과 "Development Slack Workspace"를 입력하고 "Create App"을 클릭하면 응용 프로그램이 생성됩니다.
Slack App 설정 ① - "Event Subscriptions"
Lambda 함수의 lambda_fanction.py에 일단 아래와 같이 기술해 주세요. Slack App과의 협력 확인이 필요하기 때문입니다.
lambda_fanction.py
import json
def lambda_handler(event, context):
return json.loads(event['body'])['challenge']
그리고 Slack API 메뉴에서 "Event Subscriptions"를 선택
Request URL 에 API Gateway 및 Lambda 설정에서 만든 API Gateway의 끝점을 입력합니다. 잠시 후 "Verified"가되면 OK입니다!
조금 아래로 스크롤하여 Subscribe to Bot Events 에 channel_created 이벤트를 추가합니다.
Slack App 설정 ② - "권한 부여"
OAuth & Permissions를 클릭하여 Scopes에서이 세 가지를 추가하십시오.
Bot의 토큰이 필요하기 때문에 메모해 둡니다. Slack API 메뉴에서 OAuth & Permissions 를 선택하여 Bot User OAuth Access Token 에 작성된 token을 복사합니다.
Slack App 설정 ③ - "Install App"
Slack API 메뉴에서 Install App을 선택합니다.
"Install to Workspace"를 클릭!
응용 프로그램 설치 확인 화면이 표시되므로 문제가 없으면 "Allow"를 클릭하십시오.
설치되면 Slack 화면에서 응용 프로그램이 실행 중인지 확인할 수 있습니다.
글쎄, 드디어 Lambda 함수에 코드를 써 봅시다!
lambda_fanction.py
import logging
import os
import json
import urllib.request
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def lambda_handler(event, context):
logger.info(event)
channelName = json.loads(event['body'])['event']['channel']['name']
channelId = json.loads(event['body'])['event']['channel']['id']
url = "https://slack.com/api/chat.postMessage"
headers = {
"Content-type" : "application/json",
"Authorization" : "Bearer "+ os.environ['TOKEN']
}
data = {
'channel': '通知したいチャンネルID(このAppが存在する)',
'text': '新しいチャンネル: ' + '#' + channelName,
'link_names' : 1,
}
req = urllib.request.Request(url=url, data=json.dumps(data).encode('utf-8'), method='POST', headers=headers)
with urllib.request.urlopen(req) as res:
logger.info(res.read().decode("utf-8"))
시도해 보자.
알림을 받고 싶은 채널에 만든 애플리케이션을 추가하세요.
할 수 있었습니다! slack API 문서를 보면 더욱 다양한 기능을 붙일 수 있습니다. 만약 에러가 나와 버려도 문서에 해결 방법이 실려 있어요!
참고 기사
Reference
이 문제에 관하여(【 Slack Bot 】 채널이 작성되면 통지하자!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ymktmk_tt/items/ef90884d94190f7ae951텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)