使用 slack api 向 slack 发送消息时如何忽略表情符号?

How to neglect emojis when posting messages to slack using slack api?

我有一个 slack POST api 调用,我正在通过我的应用程序进行调用:-

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

我遇到的问题是响应可能包含错误日志并且可能包含类似

的文本

Error in /:hive:/SomeError....

当它发布到 slack 时,它会将 :hive: 视为表情符号并打印蜂巢的表情符号而不是 :hive:,这是我不想要的。

如何做到这一点?我试过将 mrkdwn 设为 false,但没有用。有人可以帮我吗?

我想你有两个选择:

  • 您可以直接将字符串格式化为代码。然后 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
                }
            }
        ]
    """)
)