Почему chat.postEphemeral возвращает ошибку channel_not_found, если для канала прямого сообщения? - PullRequest
1 голос
/ 13 мая 2019

Я создаю приложение Slack, которое показывает эфемерное сообщение пользователям, если они используют мою собственную команду слеша где-либо: прямые сообщения, общедоступный канал или частный канал.

Все это работает на общедоступных и частных каналах (куда приглашается бот), но когда запрос поступает из канала прямого сообщения (пользователь вводит что-то другому пользователю в канале прямого сообщения), я получаю сообщение об ошибке: channel_not_found .

Мне не хватает каких-либо разрешений для приложений или chat.postEphemeral не работает для каналов прямых сообщений?

В документации есть информация о том, что chat.postEphemeral работает в приватной беседе.

Вот ответ от прямого канала сообщений (пользователь пишет другому пользователю):

{ 
  token: 'myValidToken',
  team_id: 'TG8HU58EM',
  team_domain: 'Test',
  channel_id: 'DGE085TRH',
  channel_name: 'directmessage',
  user_id: 'UG1TR625J',
  user_name: 'test.user',
  command: '/my-command',
  text: 'help',
  response_url:
'https://hooks.slack.com/commands/TG8HU58EM/459862138745/VvhWfjkzqj41g21MZnQnJh8J',
  trigger_id: '459862138745.76621584642.5dc0055d2dd61c155fd1cd1c163df5a5' }

Область применения бота: область действия бота

1 Ответ

1 голос
/ 13 мая 2019

Ваш бот-пользователь должен быть участником каждого непубличного канала, чтобы иметь возможность публиковать сообщения.Это включает в себя прямые каналы сообщений.Так что, если, например, пользователь A напрямую общается с пользователем B, пользователь бота, очевидно, не является частью этого канала.Поэтому ваш бот получает ошибку.

Этот метод будет работать в каналах прямых сообщений, но только для прямых разговоров пользователя бота с другими.

Если вы хотите, чтобы ваше приложение работало на всех каналахВы можете рассмотреть возможность перехода к командам слэша.Они также будут работать в любом канале прямых сообщений.

...