【问题标题】:How do I change my Slack bot icon in python?如何在 python 中更改我的 Slack 机器人图标?
【发布时间】:2020-02-08 13:45:59
【问题描述】:

我在玩 Slack api 方面非常(非常)新手 - 所以要温柔并使用简短的词。到目前为止,我已经设法建立了一个简单的系统,可以发布到我们的 Slack 频道。一切都很好,但与帖子关联的图标是默认的。如何设置不同的图标,甚至是我自己创建的图标?

这里是基本代码(摘自 Slack api 开发网站上列出的教程):

import requests
import json

url = 'https://slack.com/api/chat.postMessage'
token = 'xoxb-00000000000etc'


headers = {'Content-Type': 'application/json', 'Authorization': 'Bearer {0}'.format(token)}

def send_message(message_text):
    message = {'channel': '#channel_name', 'text': message_text}
    requests.post(url, headers=headers, data=json.dumps(message))

send_message('beep boop - this is the OMS bot calling')

非常感谢...

【问题讨论】:

    标签: python-3.x slack slack-api


    【解决方案1】:

    要为您的消息设置图标图像,您可以简单地为属性icon_url 提供图像的 URL。

    例子:

    message = {'channel': '#channel_name', 'text': message_text, 'icon_url': 'https://img.icons8.com/emoji/96/000000/penguin--v2.png'}
    

    您可以在 API 方法chat.postMessage 的官方文档页面上查看所有可用属性。

    既然你说你是个初学者,请允许我再提两个建议。

    1 - 官方 Slack 库

    有一个用于 Python 的官方 Slack 库,它使思考变得更加容易,例如您不需要处理请求库和 HTTP 标头。你可以在这里找到它:https://github.com/slackapi/python-slackclient

    2 - 环境变量中的 Slack 令牌

    出于安全原因,将 Slack 令牌放在环境变量中是一种很好的做法。这样你也可以将你的代码签入到 github 等中。

    更新示例

    这是您的示例,其中包含两个建议的改进:

    import slack
    import os
    
    client = slack.WebClient(token=os.environ['SLACK_TOKEN'])
    
    response = client.chat_postMessage(        
        channel='general',
        text='beep boop - this is the OMS bot calling',
        icon_url='https://img.icons8.com/emoji/96/000000/penguin--v2.png'
    )
    
    

    【讨论】:

    • 太棒了。如果此答案解决了您的问题,请考虑将其标记为解决方案。谢谢!
    【解决方案2】:

    icon_urlicon_emoji 传递给机器人时,请记住the scope chat:write.customize is required。否则无效。

    【讨论】:

      猜你喜欢
      • 2017-09-20
      • 2018-10-22
      • 1970-01-01
      • 2016-08-15
      • 2021-08-13
      • 1970-01-01
      • 2016-03-02
      • 2017-05-24
      • 2018-10-15
      相关资源
      最近更新 更多