dealerinspire / slack-notifications
此包提供了一种轻松发送带有附件的Slack通知的方式。
1.1.2
2021-06-24 21:36 UTC
Requires
- php: ^7.2.0 || ^8.0
- vlucas/phpdotenv: ^4.1 || ^5.0
Requires (Dev)
- phpunit/phpunit: ^8.0 || ^9.0
This package is auto-updated.
Last update: 2024-09-25 04:38:42 UTC
README
Slack通知系统的简单、流畅实现。
将包添加到您的项目
在Composer中要求
composer require dealerinspire/slack-notifications
将代码添加到您的代码中
在您希望使用的类文件顶部
use DealerInspire\SlackNotifications\SlackNotification;
基本实现
$slackNotification = (new SlackNotification)
->toHook('abc\123\xyz')
->withUsername('Newt Scamander')
->withIcon('unicorn_face')
->toChannel('#mythical_beasts')
->withTitle('Testing Slack Notification')
->withText('Just checking to make sure the notification goes through')
->unfurlLinks(false)
->unfurlMedia(false)
->send();
带简单附件
在您希望使用的类文件顶部
use DealerInspire\SlackNotifications\SlackNotification;
use DealerInspire\SlackNotifications\SlackAttachment;
在您的类代码中
$slackAttachment = (new SlackAttachment)
->createFromArray([
'fallback' => 'The Mythical Animal is a Unicorn',
'title' => 'What are Mythical Animals?',
'text' => 'Mythical animals are creatures that dont exist',
]);
$slackNotification = (new SlackNotification)
->toHook('abc\123\xyz')
->withUsername('Newt Scamander')
->withIcon('unicorn_face')
->toChannel('#mythical_beasts')
->withTitle('Testing Slack Notification')
->withText('Just checking to make sure the notification goes through')
->unfurlLinks(false)
->unfurlMedia(false);
->withAttachments([$slackAttachment])
->send();
带更复杂附件
在您希望使用的类文件顶部
use DealerInspire\SlackNotifications\SlackNotification;
use DealerInspire\SlackNotifications\SlackAttachment;
use DealerInspire\SlackNotifications\SlackAttachment\SlackAttachmentAction;
use DealerInspire\SlackNotifications\SlackAttachment\SlackAttachmentField;
在您的类代码中
$unicornAttachmentField = (new SlackAttachmentField)
->createFromArray([
'title' => 'Mythical Animal',
'value' => 'Unicorn',
'short' => true,
]);
$unicornAttachmentAction = (new SlackAttachmentAction)
->createFromArray([
'text' => 'Find more about Unicorns',
'url' => 'https://en.wikipedia.org/wiki/Unicorn',
]);
$slackAttachment = (new SlackAttachment)
->createFromArray([
'fallback' => 'The Mythical Animal is a Unicorn',
'title' => 'What are Mythical Animals?',
'text' => 'Mythical animals are creatures that dont exist',
]);
$slackAttachment->addField($unicornAttachmentField);
$slackAttachment->addAction($unicornAttachmentAction);
$slackNotification = (new SlackNotification)
->toHook('abc\123\xyz')
->withUsername('Newt Scamander')
->withIcon('unicorn_face')
->toChannel('#mythical_beasts')
->withTitle('Testing Slack Notification')
->withText('Just checking to make sure the notification goes through')
->unfurlLinks(false)
->unfurlMedia(false);
->withAttachments([$slackAttachment])
->send();
使用数组配置通知
在您希望使用的类文件顶部
use DealerInspire\SlackNotifications\SlackNotification;
在您的类代码中
$slackAttachmentConfiguration = [
[
'fallback' => 'The Mythical Animal is a Unicorn',
'title' => 'What are Mythical Animals?',
'text' => 'Mythical animals are creatures that dont exist',
'actions' => [
[
'text' => 'Find more about Unicorns',
'url' => 'https://en.wikipedia.org/wiki/Unicorn',
],
],
'fields' => [
[
'title' => 'Mythical Animal',
'value' => 'Unicorn',
'short' => true,
],
],
],
];
$slackNotification = (new SlackNotification)
->toHook('abc\123\xyz')
->withUsername('Newt Scamander')
->withIcon('unicorn_face')
->toChannel('#mythical_beasts')
->withTitle('Testing Slack Notification')
->withText('Just checking to make sure the notification goes through')
->unfurlLinks(false)
->unfurlMedia(false);
->withAttachments($slackAttachmentConfiguration)
->send();
使用环境变量
您还可以使用环境变量来默认一些设置。环境变量包含在您的项目 .env 文件中。
SLACK_HOOK_PATH=abc\123\xyz
SLACK_USERNAME=Newt Scamander
SLACK_ICON=unicorn_face
SLACK_CHANNEL=#mythical_beasts
当您使用环境变量时,基本用例可以变得更加简单。当然,您始终可以使用上述示例中的方法覆盖这些设置。
在您希望使用的类文件顶部
use DealerInspire\SlackNotifications\SlackNotification;
在您的类代码中
(new SlackNotification)
->withTitle('Testing Slack Notification')
->withText('Just checking to make sure the notification goes through')
->send();
贡献
请参阅 CONTRIBUTING 指南。