2017-02-19 4 views
0

У меня есть бот, который работает в многопользовательском канале (Slack). Бот реагирует на триггер в канале. Как я могу ответить пользователю, который вызвал бота, в приватном разговоре с пользователем?Как начать приватный разговор в многопользовательском канале (botframework)?

ответ

2

Если вы просто ищете способ для бот должны отвечать только пользователю, вызов на боте, то вы можете попробовать использовать Слак-х ephemeral message type as documented here.

Из документации:

По умолчанию ответные сообщения, отправленные командам, будут отображаться только пользователю, выдавшему команду (мы называем эти «эфемерные» сообщения ). ... Установка response_type в ephemeral совпадает с , не включая тип ответа, и ответное сообщение будет быть видимым только для пользователя, который выдал команду.

В принципе, в групповом канале эфемерные сообщения отправляются только пользователю, выдающему команду, вместо того, чтобы транслироваться в группу.

В коде вашего бота вам просто нужно использовать 0 # custom channel message capability строителя ботов, чтобы изменить поле channelData исходящего сообщения.

Например:

{ 
    "type": "message", 
    "locale": "en-Us", 
    "channelId":"slack", 
    "conversation": { "id":"123123123123", "topic":"awesome chat" }, 
    "from": { "id":"12345", "name":"My Bot"}, 
    "recipient": { "id":"67890", "name":"Joe Doe"}, 
    "channelData": { 
     "response_type": "ephemeral", 
     "text": "This is some message.", 
     "attachments": [ 
      { 
       ... 
      } 
     ] 
    } 

} 

Где channelData следует за Slack Message formatting guidelines.

Если вы ищете возможность для бота разрывать в совершенно новый 1: 1 разговор с пользователем, maybe take a look at the documentation for Starting Conversations и метод CreateDirectConversation().

 Смежные вопросы

  • Нет связанных вопросов^_^