2016-08-21 3 views
1

나는 모든 공개 & 비공개 채널과 팀을위한 IM을 듣는 봇을 만들려고 노력 중이며 특정 트리거 단어를 볼 때 답장을 보냅니다. 이것은 "Slack App"이며 "Slack에 추가"버튼을 사용하여 팀에 설치 가능하며 "Bot User"가 포함됩니다.슬랙 이벤트 API를 사용하여 슬랙 봇 (Slack Bot)을 듣고 답장하려면 어떤 OAuth 스코프가 필요합니까?

"bot"OAuth 범위를 요청했으며 "message.channels, message.groups 및 message.im"팀 이벤트 (https://api.slack.com/apps/myAppId/event-subscriptions)에 가입했지만 이벤트 API를 통해 이벤트 POST를 수신하지 않는 것으로 보입니다 새 메시지를 보낼 때.

"channels : history, groups : history, im : history"범위를 추가하면 봇이 이러한 이벤트 POST를 수신하게되지만 봇을 추가 한 사용자 만 믿기 때문에 추가 기능이없는 그룹, 사용자가 다른 사용자 2 명의 회원이 아니거나 IM입니다. 즉, 사용자가 내 봇을 설치 한 사용자에 따라 동작이 달라질 수 있습니다.

전체 팀에 app/bot을 설치하는 방법이 있습니까? 문서에서 '봇'범위에 이벤트를 수신 할 수있는 기능이 있어야하지만이 기능이 표시되지 않습니다 (위의 채널은 히스토리 범위 등이 필요함).

봇 - 슬랙 앱에 봇 사용자 기능이 포함되어있을 때이 범위를 요청하십시오. 들어오는 webhook 및 명령과 달리 봇 범위는 봇 사용자에게 웹 API 메서드의 하위 집합, RTM API 및 Events API의 특정 이벤트 유형에 대한 액세스 권한을 부여합니다.

봇의 페이지에는 봇이 RTM API를 통해 모든 메시지를받을 수 있다고 주장

(https://api.slack.com/docs/oauth-scopes에서) :

이 웹 소켓는 당신에게 메시지와 모든 활동을 보낼 것이다 봇 사용자가 초대받은 공개 및 비공개 채널뿐만 아니라 직접 메시지를 통해 메시지가 전송됩니다. bot 사용자는 인증 된 호출을 rtm.start API 메소드에 전송하여이 websocket을 RTM API로 엽니 다. RTM API에 연결하는 방법에 대한 자세한 내용은 여기의 설명서를 참조하십시오.

(https://api.slack.com/bot-users에서) 는 RTM API를 사용하거나 위에서 언급 한 추가 범위를 추가 할 필요없이 이벤트 API 가능한이 같은 행동인가?

+0

내 앱에 봇 사용자를 추가 한 후 '이벤트 구독'페이지에 '봇 이벤트'섹션이 표시되며 여기에서 'message.channels'을 구독 할 수 있으며 채널에는 history 권한이 필요하지 않습니다 (선적 서류 비치). 그러나 봇 사용자는 모니터링 할 모든 채널에 초대해야하므로 설치 프로세스가 더 복잡해집니다. – Crashthatch

답변

0

봇 범위 (및 channels.message Events 가입)가 로봇이에있는 채널에서 을 수신 할 수 있음을 이해했다는 것을 알았습니다.

당신은이 두 가지 옵션 1) 봇에 추가 channel.write 범위를 요청, 당신이 아닌 봇 토큰) 2)에 작업 사용자 토큰을 사용하여 (모든 채널에 봇을 초대 당신의 온 보딩 (onboarding)을하고, 앱을 설치 한 사용자 인 "챔피언"을 얻는 방법을 찾아서 관련 채널에서 봇을 초대하십시오.

해결책 1)은 대개 매우 침입하는 것으로 간주됩니다. 특히 대부분의 사람들이 앱에 대해 들어 보지 않았거나 설치 결정을 내리지 못하는 대규모 팀에서 특히 그렇습니다. 그러나 매우 특정한 사용 사례에 적합 할 수 있습니다. 옵션 2)은 권장 경로이지만 어렵습니다 :-) 행운을 빌어 요!

관련 문제