我想在我的 Slackspace 的#general channel 中从 PHP 脚本中创建一条消息。该消息应包含在本地即时创建的文本和图像。
我已经创建了一个应用程序,生成了一个不记名 token ,并设法创建了一个纯文本消息,也作为图像上传。
但我不知道如何在 中创建两者一条消息 ,因为上面的过程会创建两条消息,一 strip 有文本,另一 strip 有图像。
最佳答案
关于如何使用图像发布 Slack 消息有两种不同的方法。
A. 直接用消息上传图片
您可以将图像直接上传到 Slack 并在 channel 中共享。在该请求中,您还可以添加将作为消息显示在图像上方的评论。这是最简单的方法,但是您的评论仅限于一个字符串。
API方法: files.upload
有这些论点:
channels
: 图片出现在initial_comment
: 您的留言B. 发布带有图像 block /附件的消息
或者,您可以将图像作为图像 block 或辅助附件添加到您的普通邮件中。这仅适用于图像文件的公共(public) URL,因此您首先需要将图像上传到图像托管程序(可以是您的 Slack 工作区)以获取公共(public) URL。
在我们的示例中,我们将使用 Slack 作为图像主机,但您可以使用任何图像主机(例如 Imgur),甚至是您自己的网络服务器,只要您获得图像文件的公共(public) URL。
第 1 步 - 将图像上传到 Slack
API方法:
files.upload
没有特殊参数,但请确保从响应中获取文件 ID。不包括 channels
参数或图像将发布到这些 channel 中。第 2 步 - 创建公共(public) URL
接下来,您必须将上传的文件标记为公开。只有这样才能通过其 public_url 属性访问它
API方法:
files.sharedPublicURL
以文件 ID 作为参数。接下来,您需要从链接到网站/
permalink_public
构建直接图像链接。文件的属性。您从
permalink_public
获得的网站链接具有以下格式:https://slack-files.com/{team_id}-{file_id}-{pub_secret}
图像的直接链接具有以下格式:
https://files.slack.com/files-pri/{team_id}-{file_id}/{filename}?pub_secret={pub_secret}
所以你只需要提取
pub_secret
来自 permalink_public
并且您应该能够构建到图像的直接链接。您可以从文件对象中获取的其他参数。第 3 步 - 发送消息
最后用图像 URL 撰写您的消息,或者为 Image Block或在 secondary attachment并使用您选择的方法提交。
API方法:
chat.PostMessage
或任何其他发送消息的方法,包括。传入的 webhook。回答 OP
如果您需要坚持使用您的评论中出现的 webhook 并且无法访问 Slack API,我建议您将图像上传到图像托管商(例如 Imgur),然后使用方法 B。
也可以看看
关于php - 如何创建包含上传图像的 Slack 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58186399/