Ошибка «cant_update_message» при обновлении сообщений, опубликованных ботом - PullRequest
1 голос
/ 27 марта 2019

Я пытаюсь обновить сообщения, опубликованные моим ботом. Тем не менее, я получаю ошибку 'cant_update_message' при попытке вызвать chat.update. Вот как выглядит мой звонок:

oauth_token = os.environ.get("OAUTH_TOKEN")
sc=SlackClient(oauth_token)
sc.api_call("chat.update", channel=channel_id, text=text, ts=ts)

Я также попробовал токен Bot OAuth вместо токена OAuth, а также все комбинации as_user (True, False, идентификатор пользователя бота ...) без успеха.

Кроме того, обратите внимание, что канал и временная метка были проверены и являются правильными; Я могу обновить сообщения, используя токен OAuth, когда сообщение было отправлено мной, и я вызываю его с помощью команды косой черты.

Я новичок в разработке Slack API. Можете ли вы дать мне знать, что мне нужно сделать, чтобы это заработало?

Кроме того, можно ли настроить другие параметры (например, username и icon_url) при публикации сообщения через chat.update? Это важная функция, поскольку мой бот иногда публикует сообщения с разными отображаемыми именами и значками.

1 Ответ

0 голосов
/ 27 марта 2019

Вы говорите, что ваше сообщение отправлено webhook, и я не уверен, что они могут быть обновлены методом API.

Чтобы убедиться, что вы можете обновлять сообщения, публикуемые вашим приложением, вы хотите использовать один из двух подходов.:

  • Отвечать на команду косой черты вместо публикации через webhook.Вы можете контролировать поведение ответов команды слэша и, например, переписать предыдущий, чтобы обновить его.
  • Используйте chat.postMessage метод API вместо webhook для публикации вашего сообщения.

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

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

...