Slack RTM with python-rtmbot:使短链接工作

时间:2015-11-30 08:55:35

标签: python slack-api slack

我正在为python-rtmbot开发一个插件,并且我试图从该插件输出短链接,如下所示: <http://google.com|test>。我的目标是在Slack中显示:test - 一个可点击的链接,但不显示完整的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()使用短链接功能?欢迎任何其他想法/建议。

1 个答案:

答案 0 :(得分:1)

RTM API仅支持发布使用我们的default message formatting mode格式化的简单消息。

要发布更复杂的消息,您可以通过python slackclient lib调用chat.postMessage Web API方法。我不认为现在有更好的解决方案。