可爱猫插件 雅爱HTTP_API插件 可爱猫微信全能机器人
时间:4年前 阅读:20132
自己整的可爱猫插件,期权HTTP_API插件,与官方的HTTP插件差不多改进了一些地方。可爱猫是微信全能机器人,入群欢迎语,定时群发,自动回复,群管理,签到,护群,指令踢人,监测退群、邀请统计、入群口令等数十项强大功能,支持二次开发,支持定制。
下载可爱猫:可爱猫4.4.1含开发包 可爱猫微信全能机器人
期权HTTP_API插件支持图片、表情、文件、视频等,先上个图:
期权HTTP_API插件功能:具体查看Api接口文档,标记有“限测版”表示可能用不了,因为到目前为止官方没有正式发布这个功能。
Api接口 php版,基本与官方的一致。
<?php /** * @name Api接口 * @link www.qiquanji.com * @bug反馈 新功能定制请联系QQ:1334588325 */ /** * @todo 接口列表 发送文本消息 send_text_msg() 发送群消息并艾特某人 send_group_at_msg() 发送图片消息 send_image_msg() 发送视频消息 send_video_msg() 发送文件消息 send_file_msg() 发送动态表情 send_emoji_msg() 发送分享链接 send_link_msg() 发送音乐消息 send_music_msg() 取指定登录账号的昵称 get_robot_name() 取指定登录账号的头像 get_robot_headimgurl() 限测版 取登录账号列表 get_logged_account_list() 取好友列表 get_friend_list() 取群聊列表 get_group_list() 取群成员资料 get_group_member() 限测版 取群成员列表 get_group_member_list() 接收好友转账 accept_transfer() 同意群聊邀请 agree_group_invite() 限测版 同意好友请求 agree_friend_verify() 修改好友备注 modify_friend_note() 删除好友 delete_friend() 限测版 踢出群成员 remove_group_member() 修改群名称 modify_group_name() 修改群公告 modify_group_notice() 建立新群 building_group() 限测版 退出群聊 quit_group() 限测版 邀请加入群聊 invite_in_group() */ define("API_KEY","www.ccvok.com"); define("API_URL","http://127.0.0.1:6060/post?key=".API_KEY); /** * 发送文字消息(好友或者群) * @access public * @param string $robwxid 登录账号id,用哪个账号去发送这条消息 * @param string $to_wxid 对方的id,可以是群或者好友id * @param string $msg 消息内容 * @return string json_string */ function send_text_msg($robwxid, $to_wxid, $msg){ $data = array(); $data['type'] = 100; // Api数值(可以参考 - api列表demo) $data['msg'] = rawurlencode($msg); // 发送内容 $data['to_wxid'] = $to_wxid; // 对方id $data['robot_wxid'] = $robwxid; // 账户id,用哪个账号去发送这条消息 $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 名片消息 * @access public * @param string $robwxid 登录账号id,用哪个账号去发送这条消息 * @param string $to_wxid 对方的id,可以是群或者好友id * @param string $msg 名片格式数据 * @return string json_string */ function mingpianxiaoxi_msg($robwxid, $to_wxid, $card_data){ $data = array(); $data['type'] = 42; // Api数值(可以参考 - api列表demo) $data['to_wxid'] = $to_wxid; // 对方id (支持好友/群ID) $data['robot_wxid'] = $robwxid; // 账户id,用哪个账号去发送这条消息 $data['card_data'] = $card_data; // 名片格式数据 $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 发送群消息并艾特某人 * @param string $robwxid 账户id,用哪个账号去发送这条消息 * @param string $from_wxid 群id * @param string $final_from_wxid 艾特的id,群成员的id ,发送消息用户的ID * @param string $final_from_name 艾特的昵称,群成员的昵称,发送消息用户名 * @param string $msg 消息内容 */ function send_group_at_msg($robwxid, $from_wxid, $final_from_wxid, $final_from_name, $msg){ $data = array(); $data['type'] = 102; // Api数值(可以参考 - api列表demo) $data['msg'] = rawurlencode($msg); // 消息内容 $data['group_wxid'] = $from_wxid; // 群id $data['member_wxid'] = $final_from_wxid; // 艾特的id,群成员的id $data['member_name'] = $final_from_name; // 艾特的昵称,群成员的昵称 $data['robot_wxid'] = $robwxid; // 账户id,用哪个账号去发送这条消息 $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 发送图片消息 * @access public * @param string $robwxid 登录账号id,用哪个账号去发送这条消息 * @param string $to_wxid 对方的id,可以是群或者好友id * @param string $path 图片的绝对路径 如下: 1、发送网络图片,需要编码如rawurlencode('https://www.qiquanji.com/zb_users/theme/ccvok_zsy/image/logo1.png') 2、发送本地图片,需要编码如rawurlencode('E:\Program Files\图片\1.png') */ function send_image_msg($robwxid, $to_wxid, $path){ $data = array(); $data['type'] = 103; // Api数值(可以参考 - api列表demo) $data['msg'] = rawurlencode($path); // 发送的图片的绝对路径 $data['to_wxid'] = $to_wxid; // 对方id $data['robot_wxid'] = $robwxid; // 账户id,用哪个账号去发送这条消息 $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 发送视频消息 * @access public * @param string $robwxid 账户id,用哪个账号去发送这条消息 * @param string $to_wxid 对方的id,可以是群或者好友id * @param string $path 视频的绝对路径 (参考图片) * @return string json_string */ function send_video_msg($robwxid, $to_wxid, $path){ $data = array(); $data['type'] = 104; // Api数值(可以参考 - api列表demo) $data['msg'] = rawurlencode($path); // 发送的视频的绝对路径 $data['to_wxid'] = $to_wxid; // 对方id $data['robot_wxid'] = $robwxid; // 账户id,用哪个账号去发送这条消息 $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 发送文件消息 * @access public * @param string $robwxid 账户id,用哪个账号去发送这条消息 * @param string $to_wxid 对方的id,可以是群或者好友id * @param string $path 文件的绝对路径 (参考图片) * @return string json_string */ function send_file_msg($robwxid, $to_wxid, $path){ $data = array(); $data['type'] = 105; // Api数值(可以参考 - api列表demo) $data['msg'] = rawurlencode($path); // 发送的文件的绝对路径 $data['to_wxid'] = $to_wxid; // 对方id(默认发送至来源的id,也可以发给其他人) $data['robot_wxid'] = $robwxid; // 账户id,用哪个账号去发送这条消息 $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 发送动态表情 * @access public * @param string $robwxid 账户id,用哪个账号去发送这条消息 * @param string $to_wxid 对方的id,可以是群或者好友id * @param string $path 动态表情文件(通常是gif)的绝对路径 (发送图片消息一样) */ function send_emoji_msg($robwxid, $to_wxid, $path){ $data = array(); $data['type'] = 106; // Api数值(可以参考 - api列表demo) $data['msg'] = rawurlencode($path); // 发送的动态表情的绝对路径 $data['to_wxid'] = $to_wxid; // 对方id(默认发送至来源的id,也可以发给其他人) $data['robot_wxid'] = $robwxid; // 账户id,用哪个账号去发送这条消息 $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 发送分享链接 * @access public * @param string $robwxid 账户id,用哪个账号去发送这条消息 * @param string $to_wxid 对方的id,可以是群或者好友id * @param string $title 链接标题 * @param string $text 链接内容 * @param string $target_url 跳转链接 允许空参数 * @param string $pic_url 图片链接 允许空参数 * @param string $icon_url; 图标的链接 允收空参数 * @return string json_string */ function send_link_msg($robwxid, $to_wxid, $title, $text, $target_url, $pic_url,$icon_url){ // 封装链接结构体 $data = array(); $data['type'] = 107; $data['title'] = $title; $data['text'] = $text; $data['target_url'] = $target_url; $data['pic_url'] = $pic_url; $data['icon_url'] = $icon_url; // 图标的链接 $data['to_wxid'] = $to_wxid; // 对方id(默认发送至来源的id,也可以发给其他人) $data['robot_wxid'] = $robwxid; // 账户id,用哪个账号去发送这条消息 $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 发送音乐分享 * @access public * @param string $robwxid 账户id,用哪个账号去发送这条消息 * @param string $to_wxid 对方的id,可以是群或者好友id * @param string $name 歌曲名字 * @return string json_string */ function send_music_msg($robwxid, $to_wxid, $name){ $data = array(); $data['type'] = 108; // Api数值(可以参考 - api列表demo) $data['msg'] = $name; // 歌曲名字 $data['to_wxid'] = $to_wxid; // 对方id(默认发送至来源的id,也可以发给其他人) $data['robot_wxid'] = $robwxid; // 账户id,用哪个账号去发送这条消息 $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 取指定登录账号的昵称 * @access public * @param string $robwxid 账户id * @return string 账号昵称 */ function get_robot_name($robwxid){ $data = array(); $data['type'] = 201; // Api数值(可以参考 - api列表demo) $data['robot_wxid'] = $robwxid; // 账户id $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 取指定登录账号的头像 (限测版 失败) * @access public * @param string $robwxid 账户id * @return string 头像http地址 */ function get_robot_headimgurl($robwxid){ $data = array(); $data['type'] = 202; // Api数值(可以参考 - api列表demo) $data['robot_wxid'] = $robwxid; // 账户id $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 取登录账号列表 * @access public * @param string $robwxid 账户id * @return string 当前框架已登录的账号信息列表 可以获取到名称,图片,微信号等 */ function get_logged_account_list(){ $data = array(); $data['type'] = 203; // Api数值(可以参考 - api列表demo) $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 取好友列表(只能获取到数量) * @access public * @param string $robwxid 账户id * @param string $is_refresh 是否刷新 * @return string 当前框架已登录的账号信息列表 */ function get_friend_list($robwxid='', $is_refresh=0){ $data = array(); $data['type'] = 204; // Api数值(可以参考 - api列表demo) $data['robot_wxid'] = $robwxid; // 账户id(可选,如果填空字符串,即取所有登录账号的好友列表,反正取指定账号的列表) $data['is_refresh'] = $is_refresh; // 是否刷新列表,0 从缓存获取 / 1 刷新并获取 $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 取群聊列表 (只能获取到群数量) * @access public * @param string $robwxid 账户id * @param string $is_refresh 是否刷新 * @return string 当前框架已登录的账号信息列表 */ function get_group_list($robwxid='', $is_refresh=0){ $data = array(); $data['type'] = 205; // Api数值(可以参考 - api列表demo) $data['robot_wxid'] = $robwxid; // 账户id(可选,如果填空字符串,即取所有登录账号的好友列表,反正取指定账号的列表) $data['is_refresh'] = $is_refresh; // 是否刷新列表,0 从缓存获取 / 1 刷新并获取 $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 取群成员列表,获取群有多少个人(只能获取到群数量) * @access public * @param string $robwxid 账户id * @param string $group_wxid 群id * @param string $is_refresh 是否刷新 * @return string 当前框架已登录的账号信息列表 */ function get_group_member_list($robwxid, $group_wxid, $is_refresh=0){ $data = array(); $data['type'] = 206; // Api数值(可以参考 - api列表demo) $data['robot_wxid'] = $robwxid; // 账户id $data['group_wxid'] = $group_wxid; // 群id $data['is_refresh'] = $is_refresh; // 是否刷新列表,0 从缓存获取 / 1 刷新并获取 $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 取群成员资料(限测版 失败) * @access public * @param string $robwxid 账户id * @param string $group_wxid 群id * @param string $member_wxid 群成员id * @return string json_string */ function get_group_member($robwxid, $group_wxid, $member_wxid){ $data = array(); $data['type'] = 207; // Api数值(可以参考 - api列表demo) $data['robot_wxid'] = $robwxid; // 账户id,取哪个账号的资料 $data['group_wxid'] = $group_wxid; // 群id $data['member_wxid'] = $member_wxid; // 群成员id $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 接收好友转账 (未测试) * @access public * @param string $robwxid 账户id * @param string $friend_wxid 朋友id * @param string $json_string 转账事件原消息 * @return string json_string */ function accept_transfer($robwxid, $friend_wxid, $json_string){ $data = array(); $data['type'] = 301; // Api数值(可以参考 - api列表demo) $data['robot_wxid'] = $robwxid; // 账户id $data['friend_wxid'] = $friend_wxid; // 朋友id $data['msg'] = $json_string; // 转账事件原消息 $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 同意群聊邀请 (未测试 限测版) * @access public * @param string $robwxid 账户id * @param string $json_string 同步消息事件中群聊邀请原消息 * @return string json_string */ function agree_group_invite($robwxid, $json_string){ $data = array(); $data['type'] = 302; // Api数值(可以参考 - api列表demo) $data['robot_wxid'] = $robwxid; // 账户id $data['msg'] = $json_string; // 同步消息事件中群聊邀请原消息 $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 同意好友请求 (未测试) * @access public * @param string $robwxid 账户id * @param string $json_string 好友请求事件中原消息 * @return string json_string */ function agree_friend_verify($robwxid, $json_string){ $data = array(); $data['type'] = 303; // Api数值(可以参考 - api列表demo) $data['robot_wxid'] = $robwxid; // 账户id $data['msg'] = $json_string; // 好友请求事件中原消息 $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 修改好友备注 * @access public * @param string $robwxid 账户id * @param string $friend_wxid 好友id * @param string $note 新备注(空字符串则是删除备注) * @return string json_string */ function modify_friend_note($robwxid, $friend_wxid, $note){ $data = array(); $data['type'] = 304; // Api数值(可以参考 - api列表demo) $data['robot_wxid'] = $robwxid; // 账户id $data['friend_wxid'] = $friend_wxid; // 朋友id $data['msg'] = $note; // 新备注(空字符串则是删除备注) $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 删除好友 (未测试 限测版) * @access public * @param string $robwxid 账户id * @param string $friend_wxid 好友id * @return string json_string */ function delete_friend($robwxid, $friend_wxid){ $data = array(); $data['type'] = 305; // Api数值(可以参考 - api列表demo) $data['robot_wxid'] = $robwxid; // 账户id $data['friend_wxid'] = $friend_wxid; // 朋友id $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 踢出群成员 (未测试) * @access public * @param string $robwxid 账户id * @param string $group_wxid 群id * @param string $member_wxid 群成员id * @return string json_string */ function remove_group_member($robwxid, $group_wxid, $member_wxid){ $data = array(); $data['type'] = 306; // Api数值(可以参考 - api列表demo) $data['robot_wxid'] = $robwxid; // 账户id $data['group_wxid'] = $friend_wxid; // 群id $data['member_wxid'] = $member_wxid; // 群成员id $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 修改群名称 * @access public * @param string $robwxid 账户id * @param string $group_wxid 群id * @param string $group_name 新群名 * @return string json_string */ function modify_group_name($robwxid, $group_wxid, $group_name){ $data = array(); $data['type'] = 307; // Api数值(可以参考 - api列表demo) $data['robot_wxid'] = $robwxid; // 账户id $data['group_wxid'] = $group_wxid; // 群id $data['group_name'] = $group_name; // 新群名 $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 修改群公告 * @access public * @param string $robwxid 账户id * @param string $group_wxid 群id * @param string $notice 新公告 * @return string json_string */ function modify_group_notice($robwxid, $group_wxid, $content){ $data = array(); $data['type'] = 308; // Api数值(可以参考 - api列表demo) $data['robot_wxid'] = $robwxid; // 账户id $data['group_wxid'] = $group_wxid; // 群id $data['content'] = $content; // 新公告 $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 建立新群 (未测试 限测版) * @access public * @param string $robwxid 账户id * @param array $friends 三个人及以上的好友id数组,['wxid_1xxx', 'wxid_2xxx', 'wxid_3xxx', 'wxid_4xxx'] * @return string json_string */ function building_group($robwxid, $friends){ $data = array(); $data['type'] = 309; // Api数值(可以参考 - api列表demo) $data['robot_wxid'] = $robwxid; // 账户id $data['friends'] = $friends; // 好友id数组 $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 退出群聊 (限测版 失败) * @access public * @param string $robwxid 账户id * @param string $group_wxid 群id * @return string json_string */ function quit_group($robwxid, $group_wxid){ $data = array(); $data['type'] = 310; // Api数值(可以参考 - api列表demo) $data['robot_wxid'] = $robwxid; // 账户id $data['group_wxid'] = $group_wxid; // 群id $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 邀请加入群聊 * @access public * @param string $robwxid 账户id * @param string $group_wxid 群id * @param string $friend_wxid 要邀请的好友ID * @return string json_string */ function invite_in_group($robwxid, $group_wxid, $friend_wxid){ $data = array(); $data['type'] = 311; // Api数值(可以参考 - api列表demo) $data['robot_wxid'] = $robwxid; // 账户id $data['group_wxid'] = $group_wxid; // 群id $data['friend_wxid'] = $friend_wxid; // 要邀请的好友ID $response = array('data' => json_encode($data)); $url = API_URL; return sendSGHttp($url, $response,'post'); } /** * 执行一个 HTTP 请求,仅仅是post组件,其他语言请自行替换即可 * @param string $url 执行请求的url地址 * @param mixed $params 表单参数 * @param int $timeout 超时时间 * @param string $method 请求方法 post / get * @return array 结果数组 */ function sendSGHttp($url, $params, $method = 'get', $timeout = 3) { if (null == $url) return null; $curl = curl_init(); if ('get' == $method) {//以GET方式发送请求 curl_setopt($curl, CURLOPT_URL, $url); } else {//以POST方式发送请求 curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, 1);//post提交方式 curl_setopt($curl, CURLOPT_POSTFIELDS, $params);//设置传送的参数 } curl_setopt($curl, CURLOPT_HEADER, false);//设置header curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);//要求结果为字符串且输出到屏幕上 curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);//设置等待时间 $res = curl_exec($curl);//运行curl $err = curl_error($curl); if (false === $res || !empty($err)) { $Errno = curl_errno($curl); $Info = curl_getinfo($curl); curl_close($curl); //print_r($Info); return $err. ' result: ' . $res . 'error_msg: '.$Errno; } curl_close($curl);//关闭curl return $res; } ?>
将上面的代码保存为qiquanji.com.php
将下面的代码保存为ccvok.com.php
<?php /** * 接收消息demo(php版)支持图片、表情、文件、视频等 * bug反馈 请联系QQ 1334588325 QQ群 953418367 * www.qiquanji.com */ date_default_timezone_set('PRC'); include 'qiquanji.com.php'; $type = $_POST['leixing'];//事件类型(事件列表可参考 - 事件列表demo) $msg_type = $_POST['msg_type'];//消息类型(仅在私聊和群消息事件中,代表消息形式,如文字消息、语音、等等) $from_wxid = $_POST['from_wxid']; //发消息的人的id $nickname = urldecode($_POST['from_name']); // 发消息的人昵称,需要转码 $final_from_wxid = $_POST['final_from_wxid'];//群消息,1级来源为群id,2级来源为发消息的成员id,私聊事件下都一样) $final_from_name = urldecode($_POST['final_from_name']);//群消息来源昵称 $robwxid = $_POST['robot_wxid']; //当前登录的账号机器人id $msg = urldecode($_POST['msg']);//消息内容 //下面简单举例,分别在群里和私聊里发帮助或者图片看看效果 if($type=="100"){//私聊消息 if($msg=="帮助"){ echo send_text_msg($robwxid, $from_wxid, "期权社区为你服务!"); }else if($msg=="图片"){ $path="http://www.ccvok.com/images/img/quanmeizi_logo_1.png"; echo send_image_msg($robwxid, $from_wxid, $path); } }else if($type=="200"){//群消息 if($msg=="帮助"){ echo send_text_msg($robwxid, $from_wxid, "群消息:期权社区为你服务!"); }else if($msg=="图片"){ $path="http://www.ccvok.com/images/img/logo_1.png"; echo send_image_msg($robwxid, $from_wxid, $path); } } ?>
使用方法,先安装好我的插件,然后将上面的两个PHP文件复制到你的本地服务器里并配置“期权HTTP_API插件”,将消息回调地址里填写“ccvok.com.php”文件路径,如“http://127.0.0.1/ccvok.com.php”。重启插件即可使用了。可以分别在群里和私聊里发送帮助或者图片看看效果。
// 以下为消息事件type值一览表,具体可查看接收过程demo 【事件数值】 【事件描述】 100 私聊消息 200 群聊消息 300 暂无 400 群成员增加 410 群成员减少 500 收到好友请求 600 二维码收款 700 收到转账 800 软件开始启动 900 新的账号登录完成 910 账号下线
本站声明:网站内容来源于网络,如有侵权,请联系我们https://www.qiquanji.com,我们将及时处理。
微信扫码关注
更新实时通知
网友评论