在这篇博客中,我们将讨论如何使用PHP脚本向钉钉发送消息。钉钉是一个非常流行的企业通讯工具,通过钉钉API可以实现自动化消息推送,方便团队协作和信息传递。本文将介绍如何编写一个简单的PHP脚本,通过钉钉机器人发送文本消息。
步骤1:创建钉钉机器人
首先,我们需要在钉钉中创建一个机器人,并获取其Webhook URL。
打开钉钉,进入一个群聊。
点击群设置,选择“智能群助手”。
添加一个机器人,选择“自定义”类型。
复制生成的Webhook URL,这将在后面的代码中使用。
步骤2:编写PHP脚本
接下来,我们编写一个PHP脚本,通过Webhook URL向钉钉发送消息。以下是完整的PHP代码:
<?php
$webhook = "<https://oapi.dingtalk.com/robot/send?access_token="YOU_TOKEN">";
// cURL请求函数
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_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$data = curl_exec($ch);
if (curl_errno($ch)) {
$error_msg = curl_error($ch);
}
curl_close($ch);
if (isset($error_msg)) {
return $error_msg;
}
return $data;
}
// 发送钉钉文本消息函数
function send_dingtalk_text($webhook, $message, $atMobiles = [], $isAtAll = false) {
$data = [
'msgtype' => 'text',
'text' => ['content' => $message],
'at' => [
'atMobiles' => $atMobiles,
'isAtAll' => $isAtAll,
]
];
return request_by_curl($webhook, json_encode($data));
}
// 每天推送 "你好" 消息
$response = send_dingtalk_text($webhook, '你好');
if ($response) {
echo "Response: " . htmlspecialchars($response);
} else {
echo "Message sent successfully.";
}
?>
代码说明
定义Webhook URL: 首先,我们定义了Webhook URL,这是我们之前在钉钉中创建机器人时获取的。
定义cURL请求函数:
request_by_curl函数用来发送cURL请求。它接受两个参数:远程服务器地址和要发送的数据。设置了多个cURL选项,如URL、POST请求、超时时间、请求头、POST数据、返回传输信息、SSL验证等。定义发送消息函数:
send_dingtalk_text函数用来发送钉钉文本消息。它接受四个参数:Webhook URL、消息内容、@的手机号列表(可选)和是否@所有人(可选)。构造发送的数据结构,并调用request_by_curl函数发送请求。发送消息: 调用
send_dingtalk_text函数发送"你好"消息,并输出响应结果。
运行脚本
将上述代码保存为一个PHP文件(如dingtalk_push.php),然后在终端或Web服务器中运行该脚本:
php dingtalk_push.php
如果成功发送消息,钉钉群聊中会收到“你好”的消息,终端会显示“Message sent successfully.”。如果发送失败,会输出错误响应。
通过以上步骤,您可以实现一个简单的PHP脚本,用于向钉钉群聊发送消息。这种方法可以用于自动化通知、报警信息推送等场景,非常方便实用。希望这篇博客能帮助您更好地理解和使用钉钉API。