Push notification SDK(AnPush、Bark、Chanify、DingTalk、Discord、Gitter、GoogleChat、IGot、Lark、Mattermost、MicrosoftTeams、NowPush、Ntfy、Push、Pushback、PushBullet、PushDeer、PushMe、Pushover、PushPlus、QQ、RocketChat、ServerChan、ShowdocPush、SimplePush、Slack、Telegram、WeWork、WPush、XiZhi、YiFengChuanHua、ZohoCliq、Zulip).
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 6 个月前 | ||
| 29 天前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 2 年前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 6 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 1 个月前 | ||
| 5 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 1 个月前 | ||
| 6 个月前 | ||
| 1 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 1 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 5 个月前 | ||
| 1 个月前 | ||
| 1 个月前 |
notify
Note
推送通知 SDK(AnPush、Bark、Chanify、钉钉、Discord、Gitter、GoogleChat、IGot、飞书、Mattermost、MicrosoftTeams、NotifyX、NowPush、Ntfy、Push、Pushback、PushBullet、PushDeer、PushMe、Pushover、PushPlus、QQ、RocketChat、ServerChan、ShowdocPush、SimplePush、Slack、Telegram、企业微信、WPush、息知、易风传话、ZohoCliq、ZohoCliqWebHook、Zulip)。
平台支持
- AnPush
- Bark
- Chanify
- 钉钉
- Discord
Gitter- GoogleChat
- IGot
- 飞书
- Mattermost
- MicrosoftTeams
- NotifyX
NowPush- Ntfy
- Push
- Pushback
- PushBullet
- PushDeer
- PushMe
- Pushover
- PushPlus
- RocketChat
- ServerChan
- ShowdocPush
- SimplePush
- Slack
- Telegram
- 企业微信
- WPush
- 息知
- 易风传话
- ZohoCliq
- ZohoCliqWebHook
- Zulip
相关仓库
环境要求
- PHP >= 8.2
安装
composer require guanguans/notify -v
使用示例
快速开始
$response = (new Guanguans\Notify\DingTalk\Client(
new Guanguans\Notify\DingTalk\Authenticator('c44fec1ddaa8a833156efb77b7865d62ae13775418030d94d05da08bfca73')
))
->send(
Guanguans\Notify\DingTalk\Messages\BtnsActionCardMessage::make([
'title' => 'This is title(keyword).',
'text' => 'This is text.',
])
)
// ->dump()
->json();
// 1. Create authenticator
$authenticator = new Guanguans\Notify\DingTalk\Authenticator(
'c44fec1ddaa8a833156efb77b7865d62ae13775418030d94d05da08bfca73',
// 'SECc32bb7345c0f73da2b9786f0f7dd5083bd768a29b82e6d460149d730eee51'
);
// 2. Create client
$client = new Guanguans\Notify\DingTalk\Client($authenticator);
// 3. Create message
$message = Guanguans\Notify\DingTalk\Messages\BtnsActionCardMessage::make([
'title' => 'This is title(keyword).',
'text' => 'This is text.',
// 'btnOrientation' => 1,
// 'btns' => [
// [
// 'title' => 'This is title 1.',
// 'actionURL' => 'https://github.com/guanguans/notify',
// ],
// ],
])
->btnOrientation(1)
->addBtn([
'title' => 'This is title 2.',
'actionURL' => 'https://github.com/guanguans/notify',
]);
// 4. Send message
$response = $client
// ->baseUri('base-uri')
// ->connectTimeout(10)
// ->debug(true)
// ->proxy('http://127.0.0.1:1087')
// ->timeout(30)
// ->verify(false)
// ->push(
// GuzzleHttp\Middleware::log(
// new Psr\Log\NullLogger,
// new GuzzleHttp\MessageFormatter(GuzzleHttp\MessageFormatter::DEBUG)
// ),
// 'log'
// )
// ->before(
// 'log',
// GuzzleHttp\Middleware::mapRequest(
// static fn (Psr\Http\Message\RequestInterface $request) => $request
// ),
// )
->send($message)
->dump()
// ->throw()
->json();
异步请求
$promise = $client->sendAsync($message);
$response = $promise->wait();
并发请求
/** @var iterable<array-key, \Guanguans\Notify\Foundation\Contracts\Message> $messages */
/** @var array<array-key, \Guanguans\Notify\Foundation\Response|\Psr\Http\Message\ResponseInterface> $responses */
$responses = $client->pool($messages);
Hyperf 集成
use Guanguans\Notify\Foundation\Client;
use GuzzleHttp\HandlerStack;
use Hyperf\Guzzle\CoroutineHandler;
use Hyperf\Guzzle\HandlerStackFactory;
use Hyperf\Guzzle\PoolHandler;
// Set Handler directly
// $client->setHandler(make(CoroutineHandler::class));
// $client->setHandler(make(PoolHandler::class));
$client->setHandler((fn () => $this->getHandler($this->option))->call(new HandlerStackFactory));
// Or set HandlerStackResolver
$client->setHandlerStackResolver(static fn (Client $client): HandlerStack => array_reduce(
$client->defaultMiddlewares(),
static fn (HandlerStack $handlerStack, callable $middleware) => tap($handlerStack)->push($middleware),
(new HandlerStackFactory)->create()
));
补全
Tip
需要安装 Laravel Idea 插件。

Composer 脚本
composer app:generate-ide-json
composer app:platform-lint
composer checks:required
composer php-cs-fixer:fix
composer test
基准测试
composer benchmark
+---------------------+--------------------------+-----+-------+-----+----------+-----------+--------+
| benchmark | subject | set | revs | its | mem_peak | mode | rstdev |
+---------------------+--------------------------+-----+-------+-----+----------+-----------+--------+
| SendMessageBench | benchSendMessage | | 10000 | 3 | 6.432mb | 156.609μs | ±0.33% |
| CreateInstanceBench | benchCreateAuthenticator | | 10000 | 3 | 5.208mb | 0.657μs | ±0.68% |
| CreateInstanceBench | benchCreateMessage | | 10000 | 3 | 5.208mb | 1.769μs | ±0.20% |
| CreateInstanceBench | benchCreateClient | | 10000 | 3 | 82.791mb | 13.827μs | ±0.40% |
+---------------------+--------------------------+-----+-------+-----+----------+-----------+--------+
更新日志
有关近期变更的更多信息,请参阅 CHANGELOG。
贡献指南
详情请参见 CONTRIBUTING。
安全漏洞
请查看 我们的安全政策,了解如何报告安全漏洞。
贡献者
鸣谢
许可证
MIT 许可证(MIT)。有关更多信息,请参见 许可证文件。
项目介绍
推送通知SDK(Bark、Chanify、钉钉、Discord、电子邮件、飞书、Gitter、Google Chat、iGot、Logger、Mattermost、微软团队、Now Push、Ntfy、PushBack、Push、PushDeer、Pushover、PushPlus、QQ频道机器人、Rocket Chat、ServerChan、Showdoc Push、Slack、Telegram、Webhook、企业微信、稀释、易风传话、Zulip)。【此简介由AI生成】