laravel-notification-channels / microsoft-teams
适用于 Microsoft Teams 的 Laravel 通知通道
1.2.0
2024-03-11 15:07 UTC
Requires
- php: >=7.2
- guzzlehttp/guzzle: ^6.3 || ^7.0
- illuminate/notifications: ~5.5 || ~6.0 || ~7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
- illuminate/support: ~5.5 || ~6.0 || ~7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
Requires (Dev)
- mockery/mockery: ^1.2.3
- phpunit/phpunit: ^8.0 || ^9.5 || ^10.5
README
此包使您能够通过 Laravel 5.5+、6.x、7.x、8.x、9.x、10.x 和 11.x 使用 Microsoft Teams 发送通知
return MicrosoftTeamsMessage::create() ->to(config('services.microsoft_teams.sales_url')) ->type('success') ->title('Subscription Created') ->content('Yey, you got a **new subscription**. Maybe you want to contact him if he needs any support?') ->button('Check User', 'https://foo.bar/users/123');
内容
安装
您可以通过 composer 安装此包
composer require laravel-notification-channels/microsoft-teams
接下来,如果您使用的是不带自动发现的 Laravel,请将服务提供程序添加到 config/app.php
'providers' => [ // ... NotificationChannels\MicrosoftTeams\MicrosoftTeamsServiceProvider::class, ],
设置连接器
请查看 此链接 以设置和添加到您的团队通道的 webhook 连接器。支持基本的 Markdown,请还查看 消息卡参考文章,其中更详细地介绍了注意事项。
设置 MicrosoftTeams 服务
然后,配置您的 webhook URL
将以下代码添加到您的 config/services.php
// config/services.php ... 'microsoft_teams' => [ 'webhook_url' => env('TEAMS_WEBHOOK_URL'), ], ...
如果您有多个团队或通道,您还可以添加多个 webhook。
// config/services.php ... 'microsoft_teams' => [ 'sales_url' => env('TEAMS_SALES_WEBHOOK_URL'), 'dev_url' => env('TEAMS_DEV_WEBHOOK_URL'), ], ...
使用方法
现在您可以在通知中的 via()
方法中使用该通道
use Illuminate\Notifications\Notification; use NotificationChannels\MicrosoftTeams\MicrosoftTeamsChannel; use NotificationChannels\MicrosoftTeams\MicrosoftTeamsMessage; class SubscriptionCreated extends Notification { public function via($notifiable) { return [MicrosoftTeamsChannel::class]; } public function toMicrosoftTeams($notifiable) { return MicrosoftTeamsMessage::create() ->to(config('services.microsoft_teams.sales_url')) ->type('success') ->title('Subscription Created') ->content('Yey, you got a **new subscription**. Maybe you want to contact him if he needs any support?') ->button('Check User', 'https://foo.bar/users/123'); } }
除了为收件人添加 to($url)
方法外,您还可以在 Notifiable 模型中添加 routeNotificationForMicrosoftTeams
方法。此方法需要返回 webhook URL。
public function routeNotificationForMicrosoftTeams(Notification $notification) { return config('services.microsoft_teams.sales_url'); }
按需通知使用
要使用按需通知,您可以在通知外观上使用 route
方法。
Notification::route(MicrosoftTeamsChannel::class,null) ->notify(new SubscriptionCreated());
可用的消息方法
to(string $webhookUrl)
: 收件人的 webhook URL。title(string $title)
: 消息的标题。summary(string $summary)
: 消息的摘要。type(string $type)
: 用于主题颜色的类型(任何有效的十六进制代码或以下之一:primary|secondary|accent|error|info|success|warning)。content(string $content)
: 消息的内容(支持 Markdown)。button(string $text, string $url = '', array $params = [])
: 按钮的文本和 URL。潜在操作的包装器。action(string $text, $type = 'OpenUri', array $params = [])
: 潜在操作的文本和类型。根据操作可以添加更多参数。有关不同类型的更多信息,请查看 此链接。options(array $options, $sectionId = null)
: 向消息有效负载对象传递额外的选项。
部分
您可以在消息卡中定义一个或多个部分。以下方法可以在部分中使用
addStartGroupToSection($sectionId = 'standard_section')
: 添加 startGroup 属性,该属性标记逻辑信息组的开始。activity(string $activityImage = '', string $activityTitle = '', string $activitySubtitle = '', string $activityText = '', $sectionId = 'standard_section')
: 向部分添加活动。fact(string $name, string $value, $sectionId = 'standard_section')
: 向部分添加事实(支持 Markdown)。image(string $imageUri, string $title = '', $sectionId = 'standard_section')
: 向部分添加图像。heroImage(string $imageUri, string $title = '', $sectionId = 'standard_section')
: 在一个区域中添加一个英雄图片。
此外,标题、内容、按钮和动作也可以通过可选的 params
值添加到区域中。
title(string $title, array $params = ['section' => 'my-section'])
: 消息的标题并将其添加到my-section
。content(string $content, array $params = ['section' => 'my-section'])
: 消息的内容并将其添加到my-section
(支持 Markdown)。button(string $text, string $url = '', array $params = ['section' => 'my-section'])
: 按钮的文本和 URL 并将其添加到my-section
。action(string $text, $type = 'OpenUri', array $params = ['section' => 'my-section'])
: 一个潜在动作的文本和类型并将其添加到my-section
。
变更日志
请参阅 变更日志 了解最近的变化信息。
测试
$ composer test
安全
如果您发现任何安全相关的问题,请通过电子邮件 [email protected] 而不是使用问题跟踪器。
贡献
请参阅 贡献指南 了解详细信息。
致谢
许可证
MIT 许可证(MIT)。请参阅 许可文件 了解更多信息。