用python做qq聊天机器人(PHP实现钉钉自定义机器人信息交互完整版)

一、设置钉钉机器人

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

用python做qq聊天机器人(PHP实现钉钉自定义机器人信息交互完整版)(1)

https://open-dev.dingtalk.com/

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

用python做qq聊天机器人(PHP实现钉钉自定义机器人信息交互完整版)(2)

1

用python做qq聊天机器人(PHP实现钉钉自定义机器人信息交互完整版)(3)

2

用python做qq聊天机器人(PHP实现钉钉自定义机器人信息交互完整版)(4)

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

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

用python做qq聊天机器人(PHP实现钉钉自定义机器人信息交互完整版)(5)

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

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

用python做qq聊天机器人(PHP实现钉钉自定义机器人信息交互完整版)(6)

这个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']; //https://oapi.dingtalk.com/robot/sendBySession?se= $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 = "https://oapi.dingtalk.com/robot/send?access_token="; $webhook = "https://oapi.dingtalk.com/robot/send?access_token="; //类型2:Markdown $msg2 = [ "msgtype" => "markdown", "markdown" => [ "title" => "", "text" => "#### 杭州天气 @ \n > 9度,西北风1级,空气良89,相对温度73%\n > ![screenshot]\n > ###### 10点20分发布 [天气](https://www.dingtalk.com) \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信息,钉钉机器人就会回复所有信息,从中不难找出我们有用的信息,针对有用的信息进行匹配应答

用python做qq聊天机器人(PHP实现钉钉自定义机器人信息交互完整版)(7)

用python做qq聊天机器人(PHP实现钉钉自定义机器人信息交互完整版)(8)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页