您的位置 首页 php

PHP实现钉钉自定义机器人信息交互完整版(二)

一、设置钉钉机器人

①登录网页钉钉开放平台,如图所示

②依次点击应用开发-企业内部应用开发-钉钉机器人-创建应用

1

2

创建好的钉钉机器人应用1

③点击开发管理并设置 消息接收地址和服务器出口IP,也就是说当钉钉群内有消息@机器人将消息发送的接口地址,我这边是自己的云服务器上面做了一个PHP的页面

二、添加企业钉钉机器人到群聊

新建钉钉内部群聊,群设置-智能群助手-添加机器人-企业机器人

这个webhook需要保管好,到时候需要通过这个地址向群聊发送消息

三、后台PHP处理钉钉消息的代码

 <?php
include_once "log.php";
include_once "dingding_conndb.php";
////////////////////////////////////////////////////////////////////////////////
//----------------------------------------------------------------------------//
//----------------------------------------------------------------------------//
////////////////////////////////////////////////////////////////////////////////
//获取钉钉机器人post过来的数据
//$file_contents =  json_decode(file_get_contents('php://input'), true); 
$file_contents =  file_get_contents('php://input'); //$file_contents = file_get_contents('test.json');
$data_string = json_decode($file_contents,true);        //var_dump($file_contents);//var_dump($data_string);//print_r($data_string);
$conversationId = $data_string['conversationId'];       //id
$senderNick = $data_string['senderNick'];               //发送者
$conversationTitle = $data_string['conversationTitle']; //群名称
$sessionWebhook = $data_string['sessionWebhook'];       //
$chatbotCorpId = $data_string['chatbotCorpId'];         //  dingf95003674c125809a39a90f97fcb1e09
$msgId = $data_string['msgId'];                         //msgKnJDs2zTrH5ekrZELms5XQ
$senderStaffId = $data_string['senderStaffId'];         //manager3596
$createAt  =$data_string['createAt'];                   //1648528809205
$senderCorpId = $data_string['senderCorpId'];           //
$conversationType = $data_string['conversationType'];   //2
$senderId = $data_string['senderId'];                   //  $:LWCP_v1:$KblAP5ntIUHnmxgEs10U8A==
$robotCode = $data_string['robotCode'];                 //  dingsxrvba0gkoxrsnoo
$text_content = str_replace(' ','',$data_string['text']['content']);        //发送内容
$msgtype = $data_string['msgtype']; 
$sessionWebhookExpiredTime = $data_string['sessionWebhookExpiredTime'];
//echo '<br>'.$text_content.'<br>';
//log_print("dingding-send",$log_data_head,$data_string,$log_data_bottom);
$datetime = date("Y-m-d H:i:s", time());
log_print("dingding-insert_result",$log_data_head,$results_insert,$log_data_bottom);

////////////////////////////////////////////////////////////////////////////////
//----------------------------------------------------------------------------//
//----------------------------------------------------------------------------//
////////////////////////////////////////////////////////////////////////////////
// if($text_content == "china"){
//     $auser = '回答正确!';
// }else{
//     $auser = '回答错误!';
// }
switch ($text_content) {
    case 'china':
        $auser =  "回答正确!";// code...
        break;
    case '天气':
        $auser =  $city.":".$info."  "."温度:".$temperature."  "."湿度:".$humidity;// code...
        break;
    default:
        $auser = "回答错误";// code...
        break;
}
//钉钉群机器人接口地址
//$webhook = "#34;;
$webhook = "#34;;
//类型2:Markdown
$msg2 = [
"msgtype" => "markdown",
"markdown" =>  [
"title" => "",
"text" => "#### 杭州天气 @ \n > 9度,西北风1级,空气良89,相对温度73%\n > ![screenshot]\n > ###### 10点20分发布 [天气]( \n"
],
"at" =>  [
"atMobiles" => [
""
],
"atUserIds" => [
"user123"
],
"isAtAll" => false
]
];
$msg2[at][atUserIds] = $senderStaffId;
$msg2[markdown][text] = $auser;//var_dump($msg2);
curl_php($webhook,$msg2);
function curl_php($webhook,$msg2){
//调用curl函数发送信息
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $webhook);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($msg2));
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($curl);
curl_close($curl);
echo "</br>".'返回发送结果:'."</br>";
//log_print("dingding-log",$log_data_head,json_encode($msg2),$log_data_bottom);
var_dump($res);
log_print("dingding",$log_data_head,$res,$log_data_bottom);
}
?>  

四、钉钉群内进行信息交互测试

@群助手 发送1212信息,钉钉机器人就会回复所有信息,从中不难找出我们有用的信息,针对有用的信息进行匹配应答

文章来源:智云一二三科技

文章标题:PHP实现钉钉自定义机器人信息交互完整版(二)

文章地址:https://www.zhihuclub.com/151151.shtml

关于作者: 智云科技

热门文章

网站地图