从 /archives 链接获取消息的 ts 值

Max*_*Max 6 slack-api slack

Slack 具有复制链接功能,可将单个聊天消息的深层链接复制到剪贴板:

在此输入图像描述

这是此类深层链接的示例(已混淆):

https://myworkspace.slack.com/archives/CqwertGU/p1234567898000159

我想做的是,从给定该链接的 Slack API 获取该消息的详细信息。

之后的第一个字符串/archives/是频道的 ID。不过我不太清楚第二个字符串:

根据Slack 的 API 文档

channels.history也可用于从存档中提取单个消息。

您需要消息的ts值,以在通道中唯一标识它。您还需要该频道的 ID。

所以,我发现p1234567898000159上面链接中的值几乎是消息的ts值,但不完全是(Slack API 不会接受它):需要删除前导,并且后面p还必须插入一个.第10位数字:1234567898.000159

将所有这些放在一个 API 请求中......

https://slack.com/api/channels.history?latest=1234567898.000159&channel=CqwertGU&count=1&pretty=1&token=mytoken123&inclusive=true

...我收到了包含所有消息详细信息的回复,这正是我所需要的。

我的问题是:我这样做对吗?我真的需要通过ts这种方式从 URL 参数构造消息的值,还是有更好、更强大、官方支持的方法?

lDi*_*ion 3

我是Python新手,但是当我创建SlackBot(由SlackBolt)时我遇到了同样的问题,我这样解决了它:

link = 'https://***.slack.com/archives/C03UGEVQ6BX/p1668769293636169'

#Grab information from link

wrong_link_list = link.split('/')
wrong_ts = wrong_link_list[-1]
t_ts = wrong_ts.replace('p', '', 1)
dot = '.'
char_count = 10

#Put information in variables

channel = wrong_link_list[-2]
text = 'Hey dude!'
mess_ts = t_ts[:char_count] + dot + t_ts[char_count:]

app.client.chat_postMessage(channel=channel, text=text, thread_ts = mess_ts)
Run Code Online (Sandbox Code Playgroud)

希望对你有帮助!