Administrator
发布于 2024-07-02 / 19 阅读 / 0 评论 / 0 点赞

使用PHP实现钉钉消息推送

在这篇博客中,我们将讨论如何使用PHP脚本向钉钉发送消息。钉钉是一个非常流行的企业通讯工具,通过钉钉API可以实现自动化消息推送,方便团队协作和信息传递。本文将介绍如何编写一个简单的PHP脚本,通过钉钉机器人发送文本消息。

步骤1:创建钉钉机器人

首先,我们需要在钉钉中创建一个机器人,并获取其Webhook URL。

  1. 打开钉钉,进入一个群聊。

  2. 点击群设置,选择“智能群助手”。

  3. 添加一个机器人,选择“自定义”类型。

  4. 复制生成的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.";
}
?>

代码说明

  1. 定义Webhook URL: 首先,我们定义了Webhook URL,这是我们之前在钉钉中创建机器人时获取的。

  2. 定义cURL请求函数request_by_curl函数用来发送cURL请求。它接受两个参数:远程服务器地址和要发送的数据。设置了多个cURL选项,如URL、POST请求、超时时间、请求头、POST数据、返回传输信息、SSL验证等。

  3. 定义发送消息函数send_dingtalk_text函数用来发送钉钉文本消息。它接受四个参数:Webhook URL、消息内容、@的手机号列表(可选)和是否@所有人(可选)。构造发送的数据结构,并调用request_by_curl函数发送请求。

  4. 发送消息: 调用send_dingtalk_text函数发送"你好"消息,并输出响应结果。

运行脚本

将上述代码保存为一个PHP文件(如dingtalk_push.php),然后在终端或Web服务器中运行该脚本:


php dingtalk_push.php

如果成功发送消息,钉钉群聊中会收到“你好”的消息,终端会显示“Message sent successfully.”。如果发送失败,会输出错误响应。

通过以上步骤,您可以实现一个简单的PHP脚本,用于向钉钉群聊发送消息。这种方法可以用于自动化通知、报警信息推送等场景,非常方便实用。希望这篇博客能帮助您更好地理解和使用钉钉API。


评论