Slack API - 创建一个从变量

时间:2017-07-20 00:39:07

标签: slack slack-api

我正在通过Python创建一个对Slack的Post.message,并希望添加一个按钮功能。我希望按钮提供由low2 = low["serials"]表示的序列号列表。这是我目前拥有的代码,它将按钮添加到松弛消息中,但是当我单击按钮时,我收到一条错误消息说"哦不,出了点问题。请再试一次。"来自slackbot。我看到帖子说大多数人都必须创建一个机器人来修复他们的按钮问题,但如果按钮只需要阅读这个变量,我认为有一种解决方法。谢谢你的帮助!

"fields": [
                {
                    "title": "Amount Used:",
                    "value": low1,
                    "short": 'true'
                },{
                    "title": "Distinct Device ID's:",
                    "value": out1,
                    "short": 'true'
                },
                {
                    "title": "Total Connection Time (hr):",
                    "value": data2,
                    "short": 'true'
                }
            ],
           "actions": [
                {
                    "name": "game",
                    "text": "Serials",
                    "type": "button",
                    "value": "serials",
                }
            ],

2 个答案:

答案 0 :(得分:1)

不,没有办法绕过它。您必须创建Slack App(或" Internal Integration")才能使用应用中的按钮。一个原因是,如果有人点击了一个按钮(你的"动作URL"),那么你需要告诉Slack要调用哪个URL,并且只能将其配置为Slack应用程序的一部分。有关详细信息,请查看有关交互式消息的this documentation

关于你的方法。一个按钮只向用户显示一个值。如果您的目的是让用户从序列号列表中进行选择,我认为您有两种选择:

a)创建一组按钮,每个序列号一个

b)使用interactive menu为列表创建下拉菜单

答案 1 :(得分:0)

我通过转换确认操作按钮来显示我想要的值来解决我的问题。

with open('Count_BB_Serial_weekly.json', 'r') as lowfile:
      low = json.load(lowfile)

low1 = low["total_serials"]
low2 = low["serials"]
low3 = '\r\n'.join(low2)

上面是我的脚本,它导入数组并读取值。下面我将结果放入“确认”弹出按钮。

 ],
       "actions": [
            {
                "name": "game",
                "text": "Serials",
                "type": "button",
                "value": "serials",
                "confirm": {
                    "title": "Serial Numbers",
                    "text": low3,
                    "ok_text": "Yes",
                    "dismiss_text": "No"
                }
        }],