首页 > 开发 > Php > 正文

用PHP写的QQ Client,可以登陆、登出、收发消息、添加好友

2020-02-06 18:35:26
字体:
来源:转载
供稿:网友
作者:hackfan
来源:http://blog.hackfan.net/
2005.8.18

qq客户端,使用腾讯tqq.tencent.com:8000 http接口

参考文章:http://spaces.msn.com/members/mprogramer

使用到的类:
advanced http client
中文编码集合类库

类接口:

 初始化类:
  $qq = new qqclient('106814','password');

 登陆:
  $qq -> login();
  参数:
   void
  返回:
   服务器返回成功:
    登陆成功:qq_login_success
    登陆失败:qq_login_failed
     同时,全局变量$qq_error_msg记录了服务器返回的错误说明
   服务器返回失败:qq_return_failed

 获得好友列表:
  $qq -> getfriendslist();
  参数:
   void
  返回:
   成功:
    array
    (
     qq号码,
    )
   失败:qq_return_failed

 获得在线列表:
  $qq -> getonlinelist();
  参数:
   void
  返回:
   成功:
    好友数 > 0
     array
     (
      array
      (
       "un" => qq号码,
       "nk" => qq昵称,
       "st" => qq状态,
       "fc" => qq头像
      ),
     )

     关于st:
      10为上线qq_status_online,20为离线qq_status_offline,30为忙碌qq_status_busy
     关于fc:
      fc为qq头像的的id,如的头像id为270,那么其头使用的图片为91.bmp,其算法为fc/3+1

    好友数 = 0
     qq_list_none
   错误:
    !(在线好友数==在线好友昵称数==在线好友状态数==在线好友头像数):qq_list_error
   失败:qq_return_failed

 获得号码信息:
  $qq -> getinfo('106814');
  参数:
   string qq号码
  返回:
   成功:
    array
    (
     'ad' => ,  //联系地址
     'ag' => ,  //年龄
     'bt' => ,  //血型
     'co' => ,  //星座
     'ct' => ,  //城市
     'cy' => ,  //国家
     'em' => ,  //email
     'fc' => ,  //头像
     'hp' => ,  //网站
     'jb' => ,  //职业
     'mo' => ,  //移动电话
     'pc' => ,  //邮编
     'ph' => ,  //联系电话
     'pr' => ,  //简介
     'pv' => ,  //省
     'rn' => ,  //真实姓名
     'sc' => ,  //毕业院校
     'sx' => ,  //性别
     'un' => ,  //qq号
     'nk' =>   //昵称
    )
   失败:qq_return_failed

 添加好友:
  $qq -> addfriend( '106814' );
  参数:
   string qq号码
  返回:
   成功:
    对方允许任何人加为好友:qq_addtolist_success;
    需要验证:qq_addtolist_needauth;
    不允许任何人加为好友:qq_addtolist_refuse;
    未知的代码:qq_addtolist_unknown;
   失败:qq_return_failed

 验证:
  $qq -> replyadd( '106814' , type, msg );
  参数:
   string qq号码
   enum(0,1,2) 类型
    *0表示“通过验证”,1表示“拒决加为对方为好友”,2表示“为请求对方加为好友”
   string 理由
  返回:
   成功:qq_return_success
   失败:qq_return_failed

 删除好友:
  $qq -> delfriend( '106814' );
  参数:
   string qq号码
  返回:
   成功:qq_return_success
   失败:qq_return_failed

 改变状态:
  $qq -> changestatus( qq_status );
  参数:
   enum(qq_status_online,qq_status_offline,qq_status_busy) 类型
  返回:
   成功:qq_return_success
   失败:qq_return_failed

 登出:
  $qq -> logout();
  参数:
   void
  返回:
   成功:qq_return_success
   失败:qq_return_failed

 接收信息:
  $qq -> getmsg();
  参数:
   void
  返回:
    消息数 > 0
     array
     (
      array
      (
       "mt" => 消息类型,
       "un" => 发送者号码,
       "mg" => 消息内容
      ),
     )

     关于mt:
      9为用户消息,99为系统消息,2为请求信息,3为通过验证,4为拒绝被加好友
     关于mg:
      当mt=9时,mg为用户发送的消息内容
      当mt=99时,
       mg=10(qq_status_online)表示对方上线
       mg=20(qq_status_offline)表示对方下线
       mg=30(qq_status_busy)表示对方进入忙碌状态
      当mt=2时,mg为请求验证的信息
      当mt=3时,mg为?
      当mt=4时,mg为拒绝理由

    好友数 = 0
     qq_list_none
   错误:
    !(在线好友数==在线好友昵称数==在线好友状态数==在线好友头像数):qq_list_error
   失败:qq_return_failed

 发送信息:
  $qq -> sendmsg($uin,$msg);
  参数:
  返回:
   成功:qq_return_success
   失败:qq_return_failed

解释:
 qq_return_success表示服务器返回执行成功的信息
 qq_return_failed表示服务器没有正确返回或者返回没有正确执行
  本代码处于调试状态,当服务器没有正确返回的时候,将会打印出详细的信息

运行:推荐在console模式下运行本程序,不建议使用webserver运行。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表