如何以编程方式链接松弛消息

时间:2019-08-14 20:08:01

标签: python slack slack-api

我有一个正在运行的Slack机器人,可以从过去的Slack对话中获取信息。我希望包含指向过去的消息的链接,以便用户可以立即单击主题。我有ts,team,client_msg_id,频道和用户的每条消息。我该如何构建将它们带到线程的链接。

我尝试过

https://company.slack.com/archives/{team}/{channel}/?ts={ts}
https://company.slack.com/archives/{channel}/{ts}
https://company.slack.com/archives/{channel}/?ts={ts}

我尝试的所有操作都会将我重定向到正确的频道,但不会重定向到线程。我可以看到有人使用以p开头的id,但我不确定该值从何而来。

2 个答案:

答案 0 :(得分:1)

如果要链接到消息,我将非常谨慎地重用通过检查HTML页面发现的一些内部语法。这些不是官方的。它们可能暂时起作用,但是它们随时可能更改。

请改为使用API​​方法chat.permalink创建消息的HTML链接。然后,您可以将其用作消息中的直接链接或链接按钮,并确保它始终可以正常工作。

答案 1 :(得分:0)

我在浏览器中使用的松弛版本中查找了这些“ p”引用。

以下是使用chrome inspector工具找到的一些链接:

每个线程都有一个与时间戳非常相似的“ p”引用。

channel:
https://company.slack.com/archives/chan/p1565761727026300

thread:
https://company.slack.com/archives/chan/p1565794300026800?thread_ts=1565761727.026300&cid=chan

timestamp:
 1565761727.026300

"p" references to 2 separate messages in a thread:
p1565761727026300
p1565794300026800

看起来 p 是更多特定于线程条目的时间戳。 但是粘贴这些链接(即使您能够找到如何获取它们)只是将您转储到通道中,这并不会打开线程。

我认为这意味着即使您拥有它们,Slack也不会让您在线程视图中打开它们。