wyrine /dingding
发送消息到钉钉机器人的组件
v1.0
2018-08-13 06:37 UTC
Requires
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- phpunit/phpunit: ^7.2
Suggests
- monolog/monolog: Allow you to record request result
This package is not auto-updated.
Last update: 2024-10-02 20:42:59 UTC
README
发送消息到钉钉机器人的组件。
它使用 guzzlehttp 发送请求。简化了钉钉机器人 API,你会发现它非常简单。
你可以使用对象来创建钉钉消息,组件将帮助你在后台完成其他事情。
安装
composer require wyrine/dingding
建议
我建议你安装一个日志组件(例如 monolog)以记录请求和响应。
基本用法
在你继续之前,你必须知道如何获取钉钉机器人的 webhook url 并配置你自己的钉钉机器人 webhook url。
现在,组件仅支持两种格式的消息。
文本消息
<?php use Wyrine\DingDing\DingDing; use Wyrine\DingDing\Message\TextMessage; $dingding = new DingDing("https://oapi.dingtalk.com/robot/send?access_token=b8b1b3d5193d6caffec98a4ce2b8676a32415a7da7b1f9bacccdf75d4ee5ee2c"); $textMessage = new TextMessage(); $textMessage->setContent('Hello World')->at('110'); $dingding->send($textMessage);
Markdown 消息
<?php use Wyrine\DingDing\DingDing; use Wyrine\DingDing\Message\MarkdownMessage; $dingding = new DingDing("https://oapi.dingtalk.com/robot/send?access_token=b8b1b3d5193d6caffec98a4ce2b8676a32415a7da7b1f9bacccdf75d4ee5ee2c"); $markdownMessage = new MarkdownMessage(); $markdownMessage ->setTitle('Hello World') ->setTextPicUrl('http://i01.lw.aliimg.com/media/lALPBbCc1ZhJGIvNAkzNBLA_1200_588.png') ->at('110'); $dingding->send($markdownMessage);
这就是全部!真的很简单,不是吗?
默认情况下,$dingding->send()
将返回一些消息给你。当请求发送成功时,它将返回 'httpcode: httpbody'
,例如 200: OK
。当出现错误时,它将返回字符串消息。
并且你可以自定义自己的回调逻辑。
下面的代码假设你已经安装了 monolog。
<?php use Wyrine\DingDing\DingDing; use Wyrine\DingDing\Message\MarkdownMessage; use Monolog\Logger; use Monolog\Handler\StreamHandler; use GuzzleHttp\Exception\RequestException; use Psr\Http\Message\ResponseInterface; //create log instance $logger = new Logger('my_logger'); $logger->pushHandler(new StreamHandler(__DIR__ . '/../log/my_app.log', Logger::DEBUG)); //create dingding object $dingding = new DingDing("https://oapi.dingtalk.com/robot/send?access_token=b8b1b3d5193d6caffec98a4ce2b8676a32415a7da7b1f9bacccdf75d4ee5ee2c"); //make your own request $markdownMessage = new MarkdownMessage(); $markdownMessage ->setTitle('Hello World') ->setTextPicUrl('http://i01.lw.aliimg.com/media/lALPBbCc1ZhJGIvNAkzNBLA_1200_588.png') ->at('110'); //request send success callback $sucCallable = function (ResponseInterface $response) use ($logger){ $logger->info($response->getStatusCode() . ' :' . $response->getBody()); }; //something wrong callback $exceptionCallable = function (RequestException $exception) use($logger){ $logger->error($exception->getMessage()); }; $dingding->send($markdownMessage, $sucCallable, $exceptionCallable);
你可以在匿名函数体内实现回调,你可以使用 use() 函数传递变量并在函数体内使用它。