kktsvetkov / slaho
向 Slack Webhooks 发送消息
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-05-13 23:15:06 UTC
README
Slaho(简称 SLAck WebHOok),是一个用于通过 Slack Webhooks 发送消息的小型 PHP5 库。
它旨在非常易于使用。我使用过其他几个 Slack 实现,它们对我来说相当笨拙且过于复杂。本库仅用于通过 Slack Webhooks 发送消息。
基本使用
通过提供要使用的 Slack Webhook 创建一个新的对象。
$s = new slaho('https://hooks.slack.com/services/T2Y...lEavL9k');
构造函数的附加参数是一个包含格式化详情的数组,这些详情可以作为默认值重用于使用此 Slaho 对象发布的所有消息。这些是“用户名”、“图标_url”和“图标_emoji”设置
$s = new slaho('https://hooks.slack.com/servi...vR8z', [
"username" => "Slaho",
"icon_emoji" => ":cat:"
]);
创建对象后,您可以使用它开始发送消息,如下所示
$s->message('Hello World');
这些消息可以具有由 slaho::message()
方法的第二个参数提供的附加格式
$s->message('Hello World!', ['attachments' => [
['text' => 'Attachment message']
]]);
您可以在 Slack 文档中阅读有关 Slack 消息及其格式、链接、附件等内容。
如果您需要向 Slack 发送整个 JSON 数据,可以通过直接调用 slack::post()
方法来实现,如下所示
$s->post(json_encode(['username' => 'Me!', 'text' => 'G\'day, Boy-o!']));
发布回调
消息通过 HTTP POST 请求发送到 Slack Webhooks。这是现在非常基本且常见的事情,但仍可能根据部署的环境带来一些挑战。
在 Slaho 中,有两个内置方法用于发送 POST 请求:一个使用 PHP 的 curl
扩展(如果已安装),另一个使用系统上的 curl
二进制文件(它会在您的系统上尝试找到)。所有这些都在幕后完成,您无需做任何事情。
但是,您可能希望使用不同的机制来执行 POST 请求。在 Slaho 中,有一种方法可以设置自己的回调来执行此操作。以下是一个示例,其中我放置了一个新的回调,我将用它来进行调试——而不是发布消息,它将打印出来
slaho::callback(function($json, $webhook) {
var_dump([$json, $webhook]);
});
回调必须接受两个参数:第一个是要发布的 JSON 编码的消息,第二个是要发布的 Webhook URL。
消息格式化
slaho::message()
的第二个参数用于对消息应用额外的格式。您可以在 Slack 文档中了解更多信息。为了更容易创建和使用这种格式,提供了一个包含两个元素的静态数组,作为示例
- 第一个是基本消息格式(仅使用“用户名”和“图标_url”/“图标_emoji”),
- 第二个是带有“附件”的格式
您可以根据它们创建一些具有丰富格式的消息
$s->message('Hello World!', slaho::$example[1]);