2017-07-20 66 views
1

我正在通过Python为Slack创建一个Post.message,并希望添加按钮功能。我希望按钮提供由low2 = low["serials"]表示的序列号列表。这是我现在使用的代码,它会将按钮添加到松散消息中,但是当我单击该按钮时,我收到一条错误消息:“哦,不,出错了,请再试一次。”从slackbot。我看到帖子说大多数人必须创建一个bot来修复他们按钮的问题,但如果按钮只需要读取这个变量,我认为有一种解决方法。谢谢您的帮助!Slack API - 创建一个从变量返回文本的按钮

"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", 
       } 
      ], 

回答

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" 
       } 
     }], 
+0

如果这是附加到您的问题,请将此信息添加到问题并删除此“答案”。谢谢 –

1

不,没有办法绕过它。您必须创建一个Slack App(或“Internal Integration”)才能在您的应用中使用按钮。原因之一是,如果有人点击某个按钮(您的“操作URL”)并且只能通过配置为Slack应用程序的一部分,则需要告诉Slack要调用哪个URL。有关详细信息,请参阅交互式消息this documentation

关于你的方法。一个按钮只会向用户显示一个值。如果你的目标是让使用的序列号的列表中选择,你必须在我看来两个选项:)

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

B使用interactive menu为您的列表创建一个下拉菜单