1

我正在为python-rtmbot开发一个插件,我正在尝试从该插件输出短链接,如下所示 <http://google.com|test>:我的目标是在 Slack 中显示它:测试- 一个可点击的链接,而不显示完整的 URL。

但是,我的 Slack 机器人只会显示原始文本<http://google.com|test>。我修改了文件rtmbot.py中名为output()的函数:

def output(self):
    for plugin in self.bot_plugins:
        limiter = False
        for output in plugin.do_output():
            channel = self.slack_client.server.channels.find(output[0])
            if channel != None and output[1] != None:
                if limiter == True:
                    time.sleep(.1)
                    limiter = False
                message = output[1].encode('ascii','ignore') + "<http://google.com|test>"
                #channel.send_message("{}".format(message))
                self.slack_client.api_call('chat.postMessage', channel=output[0], text=message, as_user=True)
                limiter = True

我没有使用channel.send_message(),而是改用self.slack_client.api_call(),这是slackclient包中的SlackClient实例。该链接现在可以正确显示,但显示时间较长(输出较慢)。

有没有办法仍然使用具有短链接功能的channel.send_message() ?欢迎任何其他想法/建议。

4

1 回答 1

1

RTM API 仅支持发布使用我们默认消息格式化模式格式化的简单消息。

要发布更复杂的消息,您可以调用 chat.postMessage Web API 方法,就像您通过 python slackclient 库所做的那样。我认为目前没有更好的解决方案。

于 2016-05-12T17:25:42.823 回答