【问题标题】:How do you invoke the /poll command using the Slack API?如何使用 Slack API 调用 /poll 命令?
【发布时间】:2016-12-01 20:26:12
【问题描述】:

我的 slack 频道支持来自 Simple Poll 应用程序的 /poll 命令。如何使用 Slack API 调用此命令?

使用python slack(er) API module

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')

消息仅以纯文本形式显示在#test 频道中,未转换为投票。

我尝试在消息中使用<!poll> 而不是/poll,就像message formatting documenation 中所暗示的那样,但结果相同。

注意:这个问题现在有点老了,重新访问后我发现我的代码使用的是现在称为legacy token 的东西,它不允许指定任何OAuth permission scopes。旧令牌已具有此案例所需的权限。

【问题讨论】:

    标签: python slack-api slack


    【解决方案1】:

    您必须使用“未记录的”chat.command API 函数而不是 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"'
    )
    

    感谢 V13Axel in this Wee-Slack bug trackerchat.command 提供了一些调试信息,让我了解了这些信息。

    根据@Erik_Kalkoken 的unofficial documentationchat.command

    需要范围post。由于此范围在应用配置窗口中似乎不可用,您需要提供 legacy token 才能使其工作。

    【讨论】:

    • 这似乎是另一个未记录的 API 命令。非常感谢分享。
    • 我正在维护一个 github 存储库来记录“未记录的”Slack API 方法 - link - 我冒昧地将这个方法添加到其中。对文档的任何评论或进一步输入将不胜感激。
    • 这似乎不再起作用了。至少不使用 python slack-client sc.api_call("chat.command", channel=channel, command=slash_command, text=message)
    • @mschmidt42 我没有查看您提到的 slack 包,但它仍然适用于我的 slacker 包。你遇到了什么错误?
    • @ritz 我使用的是现在称为legacy token 的东西。您不能在此类令牌上指定范围。
    【解决方案2】:

    我偶然发现了完全相同的问题,所以我做了一些编码,这里有一个工作示例:

    https://github.com/dazlious/slack-cmd-trigger

    您可以使用您的 api-token 通过命令触发任何通道。

    【讨论】:

    • 这太神奇了!!我正在尝试将其与“/giphy”一起使用,但用户必须单击“发送”才能发布 gif。你知道我们是否可以使用命令行来实现它?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 2019-04-07
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多