Как пренебрегать смайликами при публикации сообщений в Slack с помощью Slack API? - PullRequest
3 голосов
/ 04 марта 2020

У меня слабый вызов API POST, который я выполняю из своего приложения: -

slack_client.api_call("chat.postMessage", channel=channel, text=response, as_user=False, username="Slack bot")

Проблема, с которой я сталкиваюсь, состоит в том, что ответ может содержать журналы ошибок и может иметь текст, такой как

Ошибка в /:hive:/SomeError....

Когда это публикуется для слабины, он думает о: hive: как смайлик и печатает смайлики улья вместо : hive:, чего я не хочу.

Как это сделать? Я пытался выставить mrkdwn как false, но это не помогло. Может ли кто-нибудь помочь мне здесь?

1 Ответ

1 голос
/ 04 марта 2020

Я думаю, у вас есть два варианта:

  • Вы можете напрямую отформатировать вашу строку как код. Тогда Slack не будет анализировать эмодзи.

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

Пример

import slack
import os
import json

client = slack.WebClient(token=os.environ['SLACK_TOKEN'])

client.chat_postMessage(        
    channel='general',
    text='`Error in /:hive:/SomeError....`'
)

client.chat_postMessage(        
    channel='general',    
    blocks=json.loads("""
        [
            {
                "type": "section",
                "text": {
                    "type": "plain_text",
                    "text": "Error in /:hive:/SomeError....",
                    "emoji": false
                }
            }
        ]
    """)
)
...