首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向Slackbot添加附件

向Slackbot添加附件
EN

Stack Overflow用户
提问于 2016-11-03 17:16:21
回答 2查看 10.6K关注 0票数 7

我试图通过他们的API向松弛消息添加一个附件。我正在使用他们推荐的python包装。我可以发送和接收基本的消息,但是当我试图以两个按钮的形式添加附件时,它就失败了。我已经做了一个松弛的应用程序,并链接的机器人,因为他们在他们的API状态。我仔细地检查了API,无法弄清楚到底是怎么回事。

代码语言:javascript
复制
def process_message(message, channel):
    intro_msg = json.loads('{
                      "text": "What would you like to do?",
                      "attachments": [
                        {
                          "text": "Choose an action",
                          "fallback": "You are unable to choose an option",
                          "callback_id": "lunch_intro",
                          "color": "#3AA3E3",
                          "attachment_type": "default",
                          "actions": [
                            {
                              "name": "enroll",
                              "text": "Enroll",
                              "type": "button",
                              "value": "enroll"
                            },
                            {
                              "name": "leave",
                              "text": "Leave",
                              "type": "button",
                              "value": "leave"
                            }
                          ]
                        }
                      ]
                    }')
    r = sc.api_call("chat.postMessage", channel=channel, attachments=intro_msg)

响应仅为{u'ok': False, u'error': u'no_text'}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-03 18:28:22

我想通了。

python包装器分离有效负载。

代码语言:javascript
复制
intro_msg  = json.dumps([{"text":"Choose an action","fallback":"You are unable to choose an option","callback_id":"lunch_intro","color":"#3AA3E3","attachment_type":"default","actions":[{"name":"enroll","text":"Enroll","type":"button","value":"enroll"},{"name":"leave","text":"Leave","type":"button","value":"leave"}]}])

sc.api_call("chat.postMessage", channel=channel, text="What would you like to do?", attachments=intro_msg, as_user=True)

我的有效负载都在附件中,因为这是它们在API文档中格式化它的方式。附件只需要是“附件”键之后的数组。

票数 15
EN

Stack Overflow用户

发布于 2016-11-03 18:12:35

我想这个简单的基本例子是可行的。

示例:

代码语言:javascript
复制
from slackclient import SlackClient

slack_token = os.environ["SLACK_API_TOKEN"]
sc = SlackClient(slack_token)

sc.api_call(
  "chat.postMessage",
  channel="#python",
  text="Hello from Python! :tada:"
)

根据https://api.slack.com/methods/chat.postMessagebuttons,附件必须是一个数组。不如把它作为数组发送:

代码语言:javascript
复制
json.loads('[{"text":"What would you like to do?","attachments":[{"text":"Choose an action","fallback":"You are unable to choose an option","callback_id":"lunch_intro","color":"#3AA3E3","attachment_type":"default","actions":[{"name":"enroll","text":"Enroll","type":"button","value":"enroll"},{"name":"leave","text":"Leave","type":"button","value":"leave"}]}]}]')

由于没有进一步的神奇之处,但是请求模块slackrequest.py,我想尝试一下发送作为数组。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40407574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档