如何使用PHP创建包含图像的Slack消息

问题描述 投票:1回答:1

我想在PHP脚本中的Slackspace的#general通道中创建一条消息。该消息应包含文本和在本地即时创建的图像。

我已经创建了一个应用程序,生成了一个承载令牌,并设法创建了一条纯文本消息,也将其作为图像上传。

但是我不知道如何在一条消息中创建两条消息,因为上面的过程创建了两条消息,一条消息带有文本,另一条消息带有图像。

php slack
1个回答
0
投票

关于如何使用图像发布Slack消息,有两种不同的方法。

A。通过消息直接上传图片

您可以将图像直接上传到Slack并在频道中共享。在该请求中,您还可以添加一条注释,该注释将作为消息显示在图像上方。这是最简单的方法,但是您的注释仅限于一个字符串。

API方法:files.upload,带有以下参数:

  • [files.upload:要显示图像的一个或多个通道的ID]
  • [channels:您的消息

B。发布带有图片块/附件的消息

或者,您也可以将图像作为图像块或辅助附件添加到普通邮件中。这仅适用于图像文件的公共URL,因此您首先需要将图像上载到图像主机(可以是Slack工作区)以获取公共URL。

在我们的示例中,我们将使用Slack作为图像托管服务商,但是只要您获得图像文件的公共URL,您就可以使用任何图像托管服务商(例如initial_comment)甚至您自己的Web服务器。

步骤1-将图片上传到Slack

API方法:Imgur,没有特殊参数,但请确保从响应中获取文件ID。

第2步-创建公共URL

[下一步,您必须将上传的文件标记为公共文件。只有这样,才能通过其public_url属性对其进行访问

API方法:files.upload,文件ID作为参数。

下一步,您需要构建从链接到网站的直接图像链接/文件的files.upload属性。

您从files.sharedPublicURL获得的网站链接的格式:

files.sharedPublicURL

到图像的直接链接的格式为:

permalink_public

因此,您只需要从permalink_public中提取https://slack-files.com/{team_id}-{file_id}-{pub_secret} ,就可以构建到图像的直接链接。您可以从文件对象获取其他参数。

步骤3-发送消息

最后用https://files.slack.com/files-pri/{team_id}-{file_id}/{filename}?pub_secret={pub_secret} pub_secret的图像URL编写消息,然后使用您选择的方法提交。

API方法:permalink_public或任何其他发送消息的方法,包括传入的Webhooks。

答复OP

[如果您需要坚持注释中出现的webhook,并且无法访问Slack API,建议您将图像上传到图像托管服务商(例如Imgur),然后使用方法B。

另请参见

© www.soinside.com 2019 - 2024. All rights reserved.