目录

  • 一、关于钉钉机器人
  • 二、接入机器人
  • 2.1 选择一个钉钉群
  • 2.2 群设置中找到`智能群助手`
  • 2.3 添加机器人
  • 2.4 选择机器人类型
  • 2.5 配置机器人选项
  • 2.6 保留webhook
  • 三、使用注意事项
  • 四、代码中接入
  • 4.1 在命令行中 使用 curl 快速进行测试
  • 4.2 PHP代码中接入
  • 五、参考


一、关于钉钉机器人

对于开发者而言,钉钉机器人是全局唯一的应用,每个机器人都有一个唯一id,拿到这个id后,我们无需安装或引用第三方sdk及应用,即可使用。

常见需求场景:

  • 可以捕获程序中的错误并将此推送到钉钉群中,方便开发人员快速解决。
  • 也可捕获平台的运营信息,推送到钉钉群中,方便运营人员快速掌握最新信息。

二、接入机器人

2.1 选择一个钉钉群

python如何实现钉钉机器人报警 php 钉钉机器人_php

2.2 群设置中找到智能群助手

python如何实现钉钉机器人报警 php 钉钉机器人_机器人_02

2.3 添加机器人

python如何实现钉钉机器人报警 php 钉钉机器人_开发语言_03

python如何实现钉钉机器人报警 php 钉钉机器人_开发语言_04

2.4 选择机器人类型

这儿我们选择自定义机器人

python如何实现钉钉机器人报警 php 钉钉机器人_机器人_05


python如何实现钉钉机器人报警 php 钉钉机器人_机器人_06

2.5 配置机器人选项

python如何实现钉钉机器人报警 php 钉钉机器人_开发语言_07


python如何实现钉钉机器人报警 php 钉钉机器人_开发语言_08


python如何实现钉钉机器人报警 php 钉钉机器人_自定义_09

勾选自定义关键词后,发送的时候内容中必须含有关键词才能正常发送。

2.6 保留webhook

将 webhook 地址复制出来,获取到Webhook地址后,用户可以向这个地址发起HTTP POST 请求,即可实现给该钉钉群发送消息。

python如何实现钉钉机器人报警 php 钉钉机器人_php_10

三、使用注意事项

  • 发起POST请求时,必须将字符集编码设置成UTF-8。
  • 每个机器人每分钟最多发送20条。
  • 当前自定义机器人支持文本 (text)、链接 (link)、markdown(markdown)、ActionCard、FeedCard消息类型。
  • Markdown消息无法实现艾特人功能。

四、代码中接入

4.1 在命令行中 使用 curl 快速进行测试

curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx' \
 -H 'Content-Type: application/json' \
 -d '{"msgtype": "text","text": {"content":"你好,我是异常消息!"}}'

python如何实现钉钉机器人报警 php 钉钉机器人_自定义_11

4.2 PHP代码中接入

index.php:

<?php
function request_by_curl($remote_server, $post_string) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $remote_server);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array ('Content-Type: application/json;charset=utf-8'));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    // 线下环境不用开启curl证书验证, 未调通情况可尝试添加该代码
     curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
     curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

$webhook = "https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXXXXXXXXXX";
$message="警告,您的代码出现异常bug!";
$data = array ('msgtype' => 'text','text' => array ('content' => $message));
$data_string = json_encode($data);

$result = request_by_curl($webhook, $data_string);

print_r($result);

结果:

D:\software\phpstudy_pro\WWW>php index.php
{"errcode":0,"errmsg":"ok"}

python如何实现钉钉机器人报警 php 钉钉机器人_php_12