我正在为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()使用短链接功能?欢迎任何其他想法/建议。
答案 0 :(得分:1)
RTM API仅支持发布使用我们的default message formatting mode格式化的简单消息。
要发布更复杂的消息,您可以通过python slackclient lib调用chat.postMessage Web API方法。我不认为现在有更好的解决方案。