2016-04-26 4 views
2

Я создаю команду слабину слэш, и я хочу знать имя канала я запустившего команду внатяжной:. Как получить directmessage имя канала

Так, например, у меня есть коллега назвал @steve, я я прямо в чате с Стивом выполнить команду:

/mycommand 

когда я проверяю назад на моем приложении, я вижу, что запрос POST только получил эти значения

[ 
    (u'user_id', u'U03NKXXXX'), 
    (u'channel_id', u'D03QBXXXX'), 
    (u'text', u''), (u'response_url', u'https://hooks.slack.com/commands/T03ARXXXX/3804397XXXX/nGUTg4zpQrMrRR07scI6XXXX'), 
    (u'team_id', u'T03ARXXXX'), 
    (u'channel_name', u'directmessage'), 
    (u'token', u'XXXXXXXXXXXXXXXXXXX'), 
    (u'command', u'/mycommand'), 
    (u'team_domain', u'myteam'), 
    (u'user_name', u'myusername') 
] 

Я ожидал, что directmessage будет именем пользователя (steve на моем примере), так как я могу получить имя пользователя целевого канала?

+0

thanks @smarx. Также, пожалуйста, отредактируйте свой комментарий, он направит на слабую поддержку Dropbox. Это должно быть [ссылка поддержки] (https://slack.com/help/contact) – eLRuLL

ответ

-2

Каналы «прямые сообщения» не имеют специального имени. Они носят общий характер. Имя вызывающего пользователя (которое вы получаете в сообщении POST) должно быть достаточно, чтобы идентифицировать его по моему мнению.

+0

Я не хочу идентифицировать отправителя, но имя канала directmessage. – eLRuLL

+0

Как я уже сказал, имя канала прямого сообщения совпадает с именем пользователя. Поэтому, если вы поговорите с Джоном Доу, название канала - «John Doe». Его отличие для группового чата, хотя название канала - это список всех пользователей, посещающих групповой чат, и они также отображаются в качестве официального частного канала под группами (обычные чаты с прямым обменом сообщениями нет), поэтому я бы предположил, что Slack API будет также дайте вам канал для них. Итак, я думаю, что ответил на ваш вопрос, или что мне здесь не хватает? –

+0

В моем опыте @ErikKalkoken это неправда. Если «Джейн Доу» разговаривает с «Джоном Доу», «channel_name» всегда остается «directmessage». Однако «user_name» изменяется в зависимости от того, кто отправил сообщение. Поэтому вы всегда будете знать, кто послал сообщение, но довольно сложно выяснить, кто является получателем. Для этого потребуется декодировать «channel_id», о чем спрашивает OP. – ScottCate

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