我正在为 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()?欢迎任何其他想法/建议。
最佳答案
RTM API 仅支持发布使用我们的 default message formatting mode 格式化的简单消息.
要发布更复杂的消息,您可以调用 chat.postMessage Web API 方法,就像通过 python slackclient 库所做的那样。我认为目前还没有更好的解决方案。
关于python - Slack RTM 与 python-rtmbot : making short-links work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33994675/