Узнать временную метку сообщения Slack из Python API

Я создал приложение Slack, добавил в него бота и входящий веб-перехватчик и отправил несколько сообщений с помощью бота. Теперь я хотел бы узнать временную метку сообщения Slack, чтобы потом удалить его с помощью метода chat.delete.

Я обнаружил, что могу использовать метод channels.history.

Вот как я пытался это использовать. Я использовал его с токеном, найденным в разделе OAuth Access Token, поскольку в документах я не могу использовать токен бота с методом channels.history.

from slackclient import SlackClient
slack_token_user_token = 'xoxp-long_string_of_integers'
sc_user_token = SlackClient(slack_token_user_token)

sc_user_token.api_call(
    "channels.history",
  channel="CHXXXXXXX")

Я получил следующую ошибку:

{'error': 'missing_scope',
 'headers': {'Access-Control-Allow-Headers': 'slack-route, x-slack-version-ts',
  'Access-Control-Allow-Origin': '*',
  'Access-Control-Expose-Headers': 'x-slack-req-id',
  'Cache-Control': 'private, no-cache, no-store, must-revalidate',
  'Connection': 'keep-alive',
  'Content-Encoding': 'gzip',
  'Content-Length': '108',
  'Content-Type': 'application/json; charset=utf-8',
  'Date': 'Fri, 05 Apr 2019 18:18:11 GMT',
  'Expires': 'Mon, 26 Jul 1997 05:00:00 GMT',
  'Pragma': 'no-cache',
  'Referrer-Policy': 'no-referrer',
  'Server': 'Apache',
  'Strict-Transport-Security': 'max-age=31536000; includeSubDomains; preload',
  'Vary': 'Accept-Encoding',
  'Via': '1.1 f0f1092b2ad1f0e573a4fcbefe4fb621.cloudfront.net (CloudFront)',
  'X-Accepted-OAuth-Scopes': 'channels:history',
  'X-Amz-Cf-Id': 'fSm6uo2H88E43JCvqd2h5mohnzA6z0B3kmdsG3u9nW0PJNrsrpK7mg==',
  'X-Cache': 'Miss from cloudfront',
  'X-Content-Type-Options': 'nosniff',
  'X-OAuth-Scopes': 'identify,bot,incoming-webhook',
  'X-Slack-Req-Id': 'c158668d-ddc9-4bbc-9a7d-6b9a9011d2dc',
  'X-Via': 'haproxy-www-yfr6',
  'X-XSS-Protection': '0'},
 'needed': 'channels:history',
 'ok': False,
 'provided': 'identify,bot,incoming-webhook'}

Если это проблема с разрешением, как мне узнать, какой токен использовать?


person user1700890    schedule 05.04.2019    source источник
comment
Как я уже сказал по вашему другому вопросу: я настоятельно рекомендую публиковать свое сообщение с помощью метода API chat.postMessage и не использовать веб-перехватчик, если вы хотите позже удалить его.   -  person Erik Kalkoken    schedule 05.04.2019
comment
@ErikKalkoken, почему вы думаете, что это веб-перехватчик, у меня включен веб-перехватчик, вы видите его в поле provided, но я больше не использую метод HTTP Post напрямую. Извините, я тоже запуталась в терминологии. Я использую этот учебник: github.com/slackapi/python-slackclient   -  person user1700890    schedule 05.04.2019


Ответы (1)


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

'требуется': 'каналы: история'

Похоже, вы предоставили токен бота, который не может работать.

'предоставлено': 'определить, бот, входящий веб-перехватчик'

Предоставьте токен доступа и убедитесь, что вы сначала добавили область channel.history и переустановили приложение для активации.

person Erik Kalkoken    schedule 05.04.2019
comment
Фактически, чистый токен бота вернул: 'provided': 'identify,bot:basic', но добавив разрешения на Basic Information helped` - person user1700890; 05.04.2019