如何使用Slack API调用/ poll命令?

Civ*_*Fan 6 python slack-api slack

我的松弛频道支持/pollSimple Poll应用程序的命令.如何使用Slack API调用此命令?

使用python slack(er)API模块:

from slacker import Slacker

# Using what's now called a "legacy token"
slack = Slacker('my-token')

slack.chat.post_message(
        '#test',
        '/poll "Do you prefer cats or dogs?" "Cats" "Dogs"',
        as_user=False,
        username="Poll Bot",
        icon_emoji=':question:',
        parse='full')
Run Code Online (Sandbox Code Playgroud)

该消息仅作为纯文本显示在#test通道中,未转换为轮询.

我尝试使用<!poll>而不是/poll在消息中,就像消息格式化文档中隐含的一样,但结果相同.

注意:这个问题现在有点旧了,在重新访问时我发现我的代码正在使用现在称为遗留令牌的代码,它不允许指定任何OAuth权限范围.旧版令牌已具有此案例所需的权限.

Civ*_*Fan 12

您必须使用"未记录的" chat.commandAPI函数而不是chat.postMessage.此功能对channel参数的友好程度稍差 - 您必须提供通道ID,而不是人性化的通道名称.

channel_id = slack.channels.get_channel_id('test')
slack.chat.command(
        channel=channel_id,
        command='/poll',
        text='"Do you prefer cats or dogs?" "Cats" "Dogs"'
)
Run Code Online (Sandbox Code Playgroud)

感谢V13Axel在这个Wee-Slack错误跟踪器中为我提供了一些调试信息chat.command.

根据@ Erik_Kalkoken的非官方文档,chat.command

需要范围post.由于此范围似乎在应用程序配置窗口中不可用,因此您需要提供旧标记才能使其正常工作.

  • 我正在维护一个github repo来记录"未记录的"Slack API方法 - [link](https://github.com/ErikKalkoken/slackApiDoc) - 我已经冒昧地将此方法添加到它.对文档的任何评论或进一步意见将受到高度赞赏. (3认同)
  • 这似乎是另一个未记录的API命令.非常感谢分享. (2认同)