🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
>### 爱优微信机器人支持httpAPI,可以快速对接网站,进行功能扩展和二次开发。 ![](https://box.kancloud.cn/133a3b90b1574552ebebd6d38ccbd2a5_802x583.png) 1. 点击程序主界面的设置选项卡,点击【自定义接口】按钮。 ![](https://box.kancloud.cn/53d2a7dd845e0f1d2ef23f3f3715f2f8_389x171.png) 2. 在弹出的接口地址对话框中输入自定义接口地址即可。 * * * * * ### API文档: 请求方式:POST 返回格式:json ~~~[api] post:/url mode=1/2/3/4/5#消息模式 iuname#机器人账号 robotid#机器人wxid robotname#机器人昵称 gid#群ID/好友wxid gname#群名称/好友备注 username#群成员wxid/好友wxid nickname#群成员昵称/好友昵称 isadmin=0/1/2#管理员权限 msgtype=1/10000/3/34/37/42/43/47/49#消息类型 msgid#消息唯一ID content#消息内容 atwxid#群聊@对象wxid membernum#群人数 <<< success {"code":"10001","text":"发送消息成功!","atwxid":"wxid_123456789","addtext":"附加文本","v1":"v1"} <<< error ~~~ ### (1)触发型消息 触发型消息指群内或者好友发送消息,触发机器人回复。 * 请求参数说明: |名称|类型|说明| | --- | --- | --- | |mode|string| 1:群聊触发;2:私聊触发;| |iuname| string | 机器人账号 | |robotid| string | 机器人wxid | |robotname| string | 机器人昵称 | |gid|string | 群聊:群chatroomid;私聊:好友wxid | |gname| string | 群聊:群名称;私聊:好友备注 | |username| string | 群聊:群成员wxid;私聊:好友wxid | |nickname| string | 群聊:群成员昵称;私聊:好友昵称 | |isadmin| int | 群聊:是否是群管理员;私聊:是否是全局管理员 | |msgtype| int | 消息类型。1:文本消息;10000:系统消息;3:图片消息;47:表情消息;42:名片消息;34:语音消息;43:视频消息;49:链接消息(小程序,私聊转账消息,邀请进群消息);37:加好友消息 | |msgid| string | 消息唯一id | |content| string | 消息内容 | |atwxid| string | 群聊:@对象的wxid,多个逗号分隔;私聊:无 | |membernum| string | 群聊:群人数;私聊:无 | * 返回参数说明: JSON示例:{"code":"10001","text":"发送消息成功!","atwxid":"wxid_123456789","addtext":"附加文本","v1":"v1"} 注:atwxid可省略,默认为@触发消息的群成员。 | code | text | 说明 | 备注 | | --- | --- | --- | --- | | 10001 | 返回消息 | 群聊普通消息 | | 10002 | 返回消息 | 添加atwxid为好友 | 未开放 | 10003 | 返回消息 | 将atwxid踢出群 |须机器人为群主 | 10004 | 返回消息 | 刷新群成员列表 |刷新群成员列表 | 10005 | 返回消息 | 设置atwxid为分群管理员 | | 10006 | 返回消息 | 取消atwxid分群管理员 | | 10007 | 返回消息 | 清空本群的分群管理员 | | 10008 | 返回消息 | 发布公告 |须机器人为群主 | 10009 | 返回消息 | 群聊退群 | | 10010 | 返回消息 | 修改群名 | | 20001 | 返回消息 | 私聊普通消息 | | 20002 | 返回消息 | 私聊发送进群邀请 |addtext:群号码 | 20003 | 返回消息 | 私聊删除好友 | | 20004 | 返回消息 | 延迟回复 |未开放 | 20005 | 返回消息 | 自动进群 |addtext:url | 20006 | 返回消息 | 接收转账 |addtext:transferid | 20007 | 返回消息 | 接受好友申请 |v1:wxid,addtext:scene ### (2)主动型消息 主动型消息是指机器人主动发送消息至群或者好友。主动型消息由机器人每分钟访问一次接口获取。主动消息每次可以发送多条。 * 请求参数说明: |名称|类型|说明| | --- | --- | --- | |mode|string| 3:定时消息| |iuname| string | 爱优账号 | |robotid| string | 机器人wxid | |robotname| string | 机器人昵称 | * 返回参数说明: JSON示例:{"delaytime":"1000","list":[{"wxid":"1451900082@chatroom","code":"10001","text":"群聊主动消息成功!","atwxid":"wxid_123456789"},{"wxid":"wxid_1234567890123","code":"20001","text":"私聊主动消息成功!"}]} | 参数 | 必填 | 说明 | | --- | --- | --- | | delaytime | 是 | 每条消息的间隔时间 | | list | 是 | 消息列表,数组格式 | | wxid | 是 | 目标id,群chatroomid或者好友wxid | | code | 是 | 参考触发型消息code定义 | | text | 是 | 消息内容或者欲踢出群成员wxid或者邀请群chatroomid | | atwxid | 否 | 群内@效果的对象的wxid | ### (3)群成员数据推送(仅爱优微信精灵) 群成员数据推送是指机器人在获取到某个群的群成员数据后,将群成员wxid、昵称、头像地址推送至接口。同时推送退群的成员wxid列表。 >[success] 群成员数据推送会在以下情形被触发: > (1)双击群列表的某个群; > (2)点击刷新群成员列表按钮; > (3)群内管理员发送 更新成员; > (4)群成员数量变化(以机器人群列表显示为准); > (5)在机器人上群成员列表右键手动踢人之后; > (6)有人进群(包括直接邀请和二维码邀请)。 > (7)接口触发10004指令。 * 群成员列表请求参数说明: |名称|类型|说明| | --- | --- | --- | |mode|string| 4:模式代码| |iuname| string | 爱优账号 | |gid| string | 群Id | |memberlist| string | 群成员列表 | * 退群成员列表请求参数说明: |名称|类型|说明| | --- | --- | --- | |mode|string| 5:模式代码| |iuname| string | 爱优账号 | |gid| string | 群Id | |exitlist| string | 退群成员wxid | |exitlist1| string | 退群成员昵称 | >[success] memberlist格式: > wxid1,昵称1,头像1|wxid2,昵称2,头像2|wxid3,昵称3,头像3 > exitlist格式: > wxid1,wxid2,wxid3 > exitlist1格式: > 昵称1,昵称2,昵称3 >[warning] 群成员多的话,memberlist数据量会很大,可能会造成请求失败。 * 返回参数说明: JSON示例:{"code":"10001","text":"发送消息成功!","atwxid":"12345678@chatroom"} >[success] (1)本类型返回消息只支持10001,即只支持返回消息,不支持触发其他事件。 > (2)atwxid为发送消息的对象ID(gid或者wxid),即消息可以发送给指定的群或者好友。如果省略,则默认发至触发群。 ### (4)群数据推送(仅爱优微信精灵) 群数据推送是指机器人在获取到群列表数据后,将群名称和群ID推送至接口。 >[success] 群列表数据推送会在以下情形被触发: > (1)启动机器人时; > (2)机器人加入新群; > (3)客户端删除好友; > (4)客户端上点击退群; > (5)客户端上切换默认群状态; > (6)接口触发10009指令; > (7)接口触发10010指令。 * 群列表请求参数说明: |名称|类型|说明| | --- | --- | --- | |mode|string| 6:模式代码| |iuname| string | 爱优账号 | |glist| JSON| 群列表 | >[success] 发送的消息格式请参考附录资料:[消息格式](https://www.kancloud.cn/ivanspring/iurobot_help_document/684125) > DEMO1: ``` <?php $s['iuname']=trim($_POST['iuname']); $s['robotid']=trim($_POST['robotid']); $s['robotname']=unicode2utf8(trim($_POST['robotname'])); $s['gid']=trim($_POST['gid']); $s['gname']=unicode2utf8(trim($_POST['gname'])); $s['username']=trim($_POST['username']); $s['nickname']=str_replace("\"","",$_POST['nickname']); $s['nickname']=str_replace("&amp;","&",$s['nickname']); $s['nickname'] =trim(unicode2utf8($s['nickname'])); $s['content']=unicode2utf8(trim($_POST['content'])); $s['msgid']=trim($_POST['msgid']); $s['msgtype']=trim($_POST['msgtype']); $s['isadmin'] = trim($_POST['isadmin']); $s['atwxid']=trim($_POST['atwxid']); $s['mode']=trim($_POST['mode']); $s['membernum']=(int)trim($_POST['membernum']); $time=time(); function unicode2utf8($str){ $t = preg_replace_callback('/\\%u([0-9a-f]{4})/i', create_function('$matches', 'return iconv("UCS-2BE","UTF-8",pack("H*", $matches[1]));'), $str); return $t; } if($s['mode']=="1"){//群聊消息 if($s['msgtype']=="10000"){ //系统消息 //进群欢迎语示例 $arr=explode("邀请",str_replace("\"","",str_replace("加入了群聊","",$s['content']))); if($arr[0]=='你'){ $arr[0]=$s['robotname']; } $output="欢迎".$arr[1]."加入本群!感谢".$arr[0]."的邀请!"; echo '{"code":"10001","text":"'.$output.'"}'; } if(substr($s['content'],-6)=="人品"){ //人品应用示例 $name=htmlspecialchars($s['nickname'].date("Y年m月d日")); for($i = 0;$i < strlen($name); $i++){ $a=$a+ord($name[$i]); } $shuzi=($a*47+70)%100; $output=getvalue($shuzi); $name1=htmlspecialchars($s['nickname'].date("Y年m月d日",($time+86400))); for($i = 0;$i < strlen($name1); $i++){ $a1=$a1+ord($name1[$i]); } $shuzi1=($a1*47+70)%100; $output1=getvalue($shuzi1); if($shuzi1>$shuzi){ if($shuzi>65){ $t="%ue106预测明天您的人品会更好哦!"; }else{ $t="%ue056预测明天您的人品会好一点哦!"; } }else{ if($shuzi>65){ $t="%ue40e预测明天您的人品会有所下降哦!"; }else{ $t="%ue107预测明天您的人品还不如今天哦!"; } } echo '{"code":"10001","text":"@'.$s['nickname'].',您今天的人品为【'.$shuzi.'】。'.$output.'[n]'.$t.'"}'; exit(); }else{ if($s['atwxid']==""){ echo '{"code":"10001","text":"@'.$s['nickname'].',请@需要查询的人。"}'; exit(); } $name=htmlspecialchars(substr($s['content'],0,-6)); for($i = 0;$i < strlen($name); $i++){ $a=$a+ord($name[$i]); } $shuzi=($a*47+$time/86400)%100; $output=getvalue($shuzi); $name1=htmlspecialchars($s['nickname'].date("Y年m月d日",($time+86400))); for($i = 0;$i < strlen($name1); $i++){ $a1=$a1+ord($name1[$i]); } $shuzi1=($a1*47+70)%100; $output1=getvalue($shuzi1); if($shuzi1>$shuzi){ if($shuzi>65){ $t="%ue106预测明天TA的人品会更好哦!"; }else{ $t="%ue056预测明天TA的人品会好一点哦!"; } }else{ if($shuzi>65){ $t="%ue40e预测明天TA的人品会有所下降哦!"; }else{ $t="%ue107预测明天TA的人品还不如今天哦!"; } } echo '{"code":"10001","text":"'.substr($s['content'],0,-6).'今天的人品为【'.$shuzi.'】。'.$output.'[n]'.$t.'"}'; exit(); } }elseif($s['mode']=="2"){//私聊消息 }elseif($s['mode']=="3"){//定时消息 } ```