qq机器人及php开发接口文档

qq机器人下载地址:http://cocoqq.cc

相关文档: cocoqq文档

   1.下载安装后,登录自己的QQ小号

   2.  切换到主界面选项卡,关闭所有运行的,打开web接口,地址填写你的接口地址,接口内容如下:

   3.  php示例代码,实现了QQ群消息防撤回,陌生人和好友对小号发送消息自动将消息发送给大号,关键字特殊处理等功能

<?php
/**
* 此文件为cocoqq的开发监听代码
* by porter at 2016年12月6日, PM 12:24:49
*/
error_reporting(E_ERROR);
if($_POST){
    $param = $_POST;
    // 验证key
    if('c16f77bb1fbb6ab8cbe8df8080f1ffac31ca0dafea10b5d166dc4ef597283ff7' != $param['Key']){
        echo 'Invalid Request!';
        exit;
    }
    $atqq = "@".$param['QQ'];
    $msg = $param['Message'];
    switch($param['Event']){ // 监听事件
        case 'KeepAlive' : { // 状态检测
            break;
        }
        case 'ReceiveTempIM' : { // 陌生人私聊
            $msg = $atqq.' '.$param['NickName'].':'.$msg;
            echo('<&&>SendMessage<&>379515892<&>'.$msg); 
            break;
        }
        case 'ReceiveNormalIM' : { // 普通qq私聊
            echo('<&&>SendMessage<&>379515892<&>'.$atqq.':'.$msg); 
            break;
        }
        case 'StatusChanged' : { //切换状态
            // $echo = $param['QQ'].'改变状态为'.$param['QQStatus'];
            // echo('<&&>SendMessage<&>379515892<&>'.$echo);
            break;
        }
        case 'ReceiveClusterIM' : {  // 群消息
            if(strpos($msg , '#porter')){ // 检测是否是特定命令
                $echo = $atqq."找porter干嘛?";
                echo('<&&>SendClusterMessage<&>'.$param['ExternalId'].'<&>'.$echo);
                exit;
            } 
            if(startWith($msg , '#百度')){
                $args = arg2arr($msg);
                $echo = $atqq.",您要搜索的内容 '".$args[1]."' 地址为  ";
                $echo .= "http://baidu.com/s?wd=".urlencode($args[1]);
                echo('<&&>SendClusterMessage<&>'.$param['ExternalId'].'<&>'.$echo);
                exit;
            }
            // $echo = "@".$param['QQ'].'消息为: '.$msg;
            // echo('<&&>SendClusterMessage<&>'.$param['ExternalId'].'<&>'.$echo);
            break;
        }
        case 'RecallQQEvent' : { //消息撤回
            filedebug($_POST);
            $echo = $atqq.'撤回的消息为: '.$msg;
            echo('<&&>SendClusterMessage<&>'.$param['ExternalId'].'<&>'.$echo);
            break;
        }
    }
} else {
    echo '';
}
// 是不是以某字符串开头
function startwith($str,$pattern) {
    if(strpos($str,$pattern) === 0)
          return true;
    else
          return false;
}
// 将以空格隔开的参数转成数组
function arg2arr($arg){
    return explode(' ', $arg);
}
// 记录信息到文件中
function filedebug($data , $filepath='./filedebug.php'){
    // 如果是日志,则将日志分隔成日期文件夹
    $date = date('Ym/d');
    $filepath = str_replace('log/' , "log/$date/" , $filepath);
    $have = strripos($filepath , '/');
    $path = (false === $have ? '' :  substr($filepath , 0 , $have+1)); // 文件夹
    $pathArr = explode('/',$filepath);
    $file = end($pathArr) ?:'default.php'; // 文件名
    if($path && !is_dir($path)){
        mkdir($path,0777,true);
    }
    $filepath = $path . $file;
    $f = fopen($filepath , 'a+');
    fwrite($f , date('Y-m-d H:i:s').'----------'."\n");
    fwrite($f , var_export($data , true));
    fwrite($f , "\n".'----------');
    fclose($f);
}


注:部分设置在左上角的开始->设置中,例如QQ群被禁言自动退群等设置

chm文档里面的 Coco.framework->QQClient类里面有事件和方法

二次开发文档,如果无法显示,右键属性里解锁.chm