Slack Bot에서 채널 생성과 같은 이벤트 알림
2828 단어 APIGateway람다slackbotNode.js
같은 생각을 인터넷에서 이미 다양한 사람이 만들고 있기 때문에, 기술적으로 참신하지 않고, 출력 관리로.
※다음과 같은 페이지등을 참고로 하여 받았습니다.
htp // // x x x. 하테나 bぉg. 코m/엔트리/2017/08/16/163719
개요
공개 채널에 대한 이벤트를 지정한 채널에 알립니다.
아래는 채널 생성을 #general에 알리는 예입니다.
그 외, 다음과 같은 이벤트에 대응
슬랙의 이벤트 API
htps : // 아피. scck. 코 m / 에우
구성
위 페이지와 동일한 다음 구성. 스테이트리스.
Slack <---> API Gateway <---> Lambda
AWS 측
Node.js는 8.10.
Lambda는 호출 소스가 어디에 있는지에 의존하지 않고 범용적으로 작성해, API의 이용측과의 인터페이스는 API Gateway로 흡수하는 것이 좋을까라고 생각하고 있었으므로, API Gateway에서는 Lambda 프록시 통합을 사용 하고 있지 않지만, VTL에서의 정의 그 자체나, 에러 리스폰스의 매핑이 깨끗하지 않다는 것을 생각하면, 프록시 통합해 버리는 것이 좋은 것일까.
제한적인 것
Bot 측에서 채널 정보를 유지할 필요가 있을 것 같다. 스테이트리스와 궁합이 나쁘다.
작성 이벤트는 통지를 확인할 수 없었다.
Slack Web API
채널명이나 유저명을 취득하기 위해서, Web API를 사용하고 있다.
(Events에서는 기본적으로 Slack 내부에서 관리되는 채널 ID와 사용자 ID가 통지되기 때문에 ※Event에 따름)
htps : // 아피. scck. 코m/우ぇb
사용한 APIchannels.info
*users.profile.get
*chat.postMessage
깨달은 것
Slack API의 Token에는 OAuth Access Token
, Bot User OAuth Access Token
의 2개가 있다.
Slack API의 Token에는
OAuth Access Token
, Bot User OAuth Access Token
의 2개가 있다.OAuth Access Token
: 관리 화면에 로그인 한 사용자의 Token Bot User OAuth Access Token
: Bot User의 Token 관리 화면의 Scopes에서 범위를 설정해도 *의 API는
Bot User OAuth Access Token
이면 권한 오류가 발생했습니다.Bot User로 OAuth를 하면 좋겠지만, 어떻게 하면 좋을지 몰랐다.
로그인 사용자로
OAuth Access Token
를 생성하여이를 사용했습니다.반대로 자신 이외의 유저 정보도 취할 수 있을까? 라고 생각했지만, 취득할 수 있었다.
소스 코드
Slack, API Gateway, Lambda 설정
Lambda 코드는 일부를 node_modules로 별도의 저장소로 만들었습니다.
그러므로 git clone
후 npm install
를 실행하여 zip 업로드해야합니다.
하고 싶은 일
메시지 전부를 이벤트 통지하면 비용도 들 것 같아서, 어떨까라고 생각했다.
지금의 스테이트리스 구성으로 그 이외의 Events API 뿐이라고 어려울 것 같다.
Cloud Watch에서 스케줄 이벤트와 연동하여 어쩔 수 없는 것 같습니다. (하지만 모든 채널에 대한 정보를 얻어야합니다. 따라서 이벤트 트리거를 할 수있는 것이 더 간단합니다)
Reference
이 문제에 관하여(Slack Bot에서 채널 생성과 같은 이벤트 알림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nilesflow/items/0eff56fbc9126fede7a2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)