2017-12-21 39 views
1

Slack에서 chat.postMessage을 사용하면 각 사용자에게 개별적으로 메시지를 보낼 수 있지만 전체 팀 (400 명의 회원)에게 한 번에 직접 메시지를 보내려면 어떻게해야할까요?Slack API를 사용하여 모든 사용자에게 동시에 메시지를 보낼 수 있습니까?

+0

'users.list'를 사용하여 모든 팀 구성원의 목록을 가져온 다음 각각 하나의 메시지를 루프와'chat.postMessage' ...를 사용하여 보내거나 더 나은 방법으로 모든 구성원을'channels.invite '메시지를 채널로 보냅니다. – kindall

+0

음, 채널에 메시지를 보내지 않고 사용자에게 개별적으로 메시지를 보내야합니다. 나는'chat.postMessage'를 400 번해야할까요? – thenewcoder

+0

물론입니다. 두 번, 400 번, 같은 양의 코드입니다. – kindall

답변

1

안녕하세요. 채널 400 개가 모두 필요하므로 현재 400 명의 개별 사용자에게 보낼 수 없습니다. 채널에 메시지를 보내려면 postMessage 메소드에 채널 인수를 추가하기 만하면됩니다.

확인이 :: https://api.slack.com/methods/chat.postMessage

+0

현재 일반 채널에 있지만 일반 채널에 게시하는 대신 사용자에게 개별적으로 메시지를 보내고 싶습니다. 그래서 거기에서 무엇을해야합니까? – thenewcoder

+0

Simple Java를 사용하는 경우 ArrayList와 같은 목록에 모든 사용자를 추가 한 다음 for 루프를 작성하여 하나를 읽고 보내고 반복합니다. – Kumar

+0

그 또한 파이썬에서 할 수 있을까요? – thenewcoder

1

chat.postMessage의 더 "대량"변종이 없습니다. 따라서 기본적으로 대량 메일 발신자를 작성해야합니다. 사용자 목록을 반복하고 각 사용자에게 메시지를 보내면 쉽게 수행 할 수 있습니다.

users.list으로 모든 사용자의 목록을 가져올 수 있습니다.

  1. Slackbot 채널 : 채널로 각 사용자의 ID를 사용하여 chat.postMessage로의 메시지를 각 보내기 그런 다음 직접 메시지를 보내는 두 가지 옵션이 있습니다.
  2. 응용 프로그램 채널 : 에 대한 im.open의 IM 채널 ID를 가져온 다음 chat.postMessage 채널로 사용하십시오. 이것은 봇 사용자가 있고 봇 사용자로부터 메시지를 보내는 경우에만 작동합니다.

요청 제한은 초당 1 메시지입니다.

Slack과 앱간에 많은 요청에 대해 3 초의 요청 시간 제한이 있습니다. (예 : 슬래시 명령에 대한 직접 응답). 따라서 봇이 많은 메시지를 보내야하는 경우 비동기 적으로 보낼 수있는 접근 방식을 사용하고자합니다.

나를 위해 잘 작동하는 한 가지 해결책은 내 봇에서 보낸 모든 슬랙 메시지에 대해 메시징 큐를 사용하는 것입니다.

+0

"사용자 목록을 통한 반복"이란 말은'im.open'이나'im.list'를 사용한다는 뜻입니까? – thenewcoder

+0

내 대답 –

+0

@thenewcoder를 업데이트 할 수 있습니다. 대화방에서 이야기 할 수 있습니다. https://chat.stackoverflow.com/rooms/161833/slack-api –