钉钉自定义机器人

DingTalkRobot#

Requirement#

Installation#

composer require overnaive/dingtalkrobot ^1.0

Documents#

钉钉官方文档

Usage#

<?php
use DingTalkRobot\DingTalkRobot;

// 实例化
$robot = new DingTalkRobot([
    'access_token' => 'access_token_string',
    'secret' => 'secret_string',
]);

// 优雅调用
$result = $robot->message->text
    ->setTextContent('我就是我, 是不一样的烟火@156xxxx8827')
    ->addAtMobile('156xxxx8827')
    ->send();

// 原生调用
$result = $robot->message
    ->send([
        'msgtype' => 'text',
        'text' => [
            'content' => '我就是我, 是不一样的烟火@156xxxx8827',
        ],
        'atMobiles' => [
            '156xxxx8827'
        ],
        'isAtAll' => false,
    ]);

Example#

代码已被折叠,点此展开

Advanced Usage#

自定义 Guzzle 客户端#

替换 Guzzle 客户端

<?php
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Handler\CurlHandler;
use DingTalkRobot\DingTalkRobot;

// 实例化
$robot = new DingTalkRobot([
    'access_token' => 'access_token_string',
    'secret' => 'secret_string',
]);

// 自定义 Handler,以下配置代码来自官方文档
$handler = new CurlHandler();
$stack = HandlerStack::create($handler);
$customClient = new Client(['handler' => $stack]);

// 通过预留方法替换掉 Guzzle 客户端
$message = $robot->message->setHttpClient($customClient);
$result = $message->text
    ->setTextContent('我就是我, 是不一样的烟火@156xxxx8827')
    ->addAtMobile('156xxxx8827')
    ->send();

配置 Guzzle 客户端

<?php
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Handler\CurlHandler;
use DingTalkRobot\DingTalkRobot;

// 自定义 Handler,以下配置代码来自官方文档
$handler = new CurlHandler();
$stack = HandlerStack::create($handler);

// 实例化,可通过 guzzle_options 来自配置客户端
$robot = new DingTalkRobot([
    'access_token' => 'access_token_string',
    'secret' => 'secret_string',
    'guzzle_options' => [
        'handler' => $stack, // 自定义 Handler
        'timeout' => 10.0, // 设置请求超时时间
    ],
]);

$result = $robot->message->text
    ->setTextContent('我就是我, 是不一样的烟火@156xxxx8827')
    ->addAtMobile('156xxxx8827')
    ->send();

理论上通过上面替换 Guzzle 客户端或配置 Handler 来支持协程,尚未测试。

更多 guzzle 配置请查阅:Guzzle Documentation

License#

MIT

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。