| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715 |
- <?php
- /**
- * 工厂函数
- * @param int $sdkappid 应用的appid
- * @param inti $accountype 应用账号类型
- * @return RestAPI
- */
- function createRestAPI(){
- return new TimRestAPI;
- }
- abstract class TimRestInterface
- {
-
- /**
- * 初始化函数
- * @param string $sdkappid 应用的appid
- * @param string $identifier 访问接口的用户
- * @return bool 返回true/false
- */
- abstract function init($sdkappid, $identifier);
- /**
- * 独立模式根据Identifier生成UserSig的方法
- * @param int $identifier 用户账号
- * @param int $expiry_after 过期时间
- * @param string $protected_key_path 私钥的存储路径及文件名
- * @return string $out 返回的签名字符串
- */
- abstract public function generate_user_sig($identifier, $expiry_after, $protected_key_path, $tool_path);
- /**
- * 托管模式设置用户凭证
- * @param string $protected_key_path 私钥的存储路径及文件名
- * @return bool 返回成功与否
- */
- abstract public function set_user_sig($usr_sig);
- ################################ 单发消息 ###################################
- /**
- * 发文本消息
- * @param string $account_id 发送者id
- * @param string $receiver 接收方的用户账号
- * @param string $text_content 消息内容(这里为文本消息)
- * @return array 通过解析REST接口json返回包得到的关联数组, 其中包含成功与否、及错误提示(如果有错误)等字段
- */
- abstract function openim_send_msg($account_id, $receiver, $text_content);
- /**
- * 发图片消息(图片不大于10M)
- * @param string $account_id 发送者id
- * @param string $receiver 接收方的用户账号
- * @param string $pic_path 要发送的图片本地路径
- * @return array 通过解析REST接口json返回包得到的关联数组, 其中包含成功与否、及错误提示(如果有错误)等字段
- */
- abstract function openim_send_msg_pic($account_id, $receiver, $pic_path);
- /**
- * 单发消息(高级接口)
- * @param string $account_id 发送者id
- * @param string $receiver 接收方的用户账号
- * @param array $msg_content 消息内容, php构造示例:
- *
- * $msg_content = array();
- * //创建array 所需元素
- * $msg_content_elem = array(
- * 'MsgType' => 'TIMTextElem', //文本类型
- * 'MsgContent' => array(
- * 'Text' => "hello", //hello 为文本信息
- * )
- * );
- * //将创建的元素$msg_content_elem, 加入array $msg_content
- * array_push($msg_content, $msg_content_elem);
- *
- * @return array 通过解析REST接口json返回包得到的关联数组, 其中包含成功与否、及错误提示(如果有错误)等字段
- */
- abstract function openim_send_msg2($account_id, $receiver, $msg_content);
- /**
- * 批量发文本消息
- * @param array $account_list 接收消息的用户id集合
- * @param string $text_content 消息内容(这里为文本消息)
- * @return array 通过解析REST接口json返回包得到的关联数组, 其中包含成功与否、及错误提示(如果有错误)等字段
- */
- abstract function openim_batch_sendmsg($account_list, $text_content);
- /**
- * 批量发图片
- * @param array $account_list 接收消息的用户id集合
- * @param string $pic_path 要发送图片的本地路径
- * @return array 通过解析REST接口json返回包得到的关联数组, 其中包含成功与否、及错误提示(如果有错误)等字段
- */
- abstract function openim_batch_sendmsg_pic($account_list, $pic_path);
- /**
- * 批量发消息(高级接口)
- * @param array $account_list 接收消息的用户id集合
- * @param array $msg_content 消息内容, php构造示例:
- *
- * $msg_content = array();
- * //创建array 所需元素
- * $msg_content_elem = array(
- * 'MsgType' => 'TIMTextElem', //文本??型
- * 'MsgContent' => array(
- * 'Text' => "hello", //hello 为文本信息
- * )
- * );
- * //将创建的元素$msg_content_elem, 加入array $msg_content
- * array_push($msg_content, $msg_content_elem);
- *
- * @return array 通过解析REST接口json返回包得到的关联数组, 其中包含成功与否、及错误提示(如果有错误)等字段
- */
- abstract function openim_batch_sendmsg2($account_list, $msg_content);
- ################################ 帐号管理 ###################################
- /**
- * 独立模式帐号同步接口
- * @param string $identifier 用户名
- * @param string $nick 用户昵称
- * @param string $face_url 用户头像URL
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function account_import($identifier, $nick, $face_url);
- /**
- * 独立模式帐号同步接口
- * @param string $Identifier 为用户申请同步的帐号,长度为4-24个字符
- * @param string $IdentifierType Identifier的类型,1:手机号(国家码-手机号) 2:邮箱 3:字符串帐号
- * @param string $Password Identifier的密码,长度为8-16个字符
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract public function register_account($identifier, $identifierType, $password);
- ################################ 资料管理 ###################################
-
- /**
- * 获取用户资料
- * @param string $account_id 获取哪个用户的资料
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、拉取到的用户信息(如果成功),及错误提示等字段
- */
- abstract function profile_portrait_get($account_id);
-
- /**
- * 获取用户资料(高级接口)
- * @param array $account_list 需要获取资料的帐号id集合, php构造示例:
- *
- * $account_list = array();
- * array_push($account_list, $account_id); //$account_id为用户id,需要用户传递
- *
- * @param array $tag_list 需要拉取的字段,目前可拉取的字段:
- * 1.昵称:"Tag_Profile_IM_Nick
- * 2.加好友设置"Tag_Profile_IM_AllowType", php构造示例:
- *
- * $tag_list = array(
- * "Tag_Profile_IM_Nick", //昵称
- * );
- *
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、拉取到的用户信息(如果成功),及错误提示等字段
- */
- abstract function profile_portrait_get2($account_list, $tag_list);
- /**
- * 设置用户名称
- * @param string $account_id 需要设置的用户
- * @param string $new_name 要设置为的用户名
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function profile_portrait_set($account_id, $new_name);
- /**
- * 设置用户资料(高级接口)
- * @param string $account_id 需要设置的用户
- * @param array $profile_list 设置选项集合,用户账号设置内容选项, 比如昵称, php构造示例:
- *
- * //创建array $profile_list
- * $profile_list = array();
- * //创建昵称选项
- * $profile_nick = array(
- * "Tag" => "Tag_Profile_IM_Nick", //用户昵称
- * "Value" => "new_name" //"new_name"要设置成的用户名
- * );
- * //加好友验证方式
- * $profile_allow = array(
- * "Tag" => "Tag_Profile_IM_AllowType",
- * "Value" => "AllowType_Type_NeedConfirm"
- * );
- * array_push($profile_list, $profile_nick);
- * array_push($profile_list, $profile_allow);
- *
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function profile_portrait_set2($account_id, $profile_list);
- ################################ 关系链管理 ###################################
- ## 关系链托管方式请详见:关系链系统概述 (http://avc.qcloud.com/wiki2.0/im/) 即时通信云-概述-关系链系统 ##
- /**
- * 建立双方好友关系
- * @param string $account_id 发起者id
- * @param string $receiver 添加的用户,完成之后两者互为好友
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function sns_friend_import($accout_id, $receiver);
-
- /**
- * 解除双方好友关系
- * @param string $account_id 用户id,即需要删除好友的用户
- * @param string $frd_id 需要删除的好友
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function sns_friend_delete($account_id, $frd_id);
- /**
- * 解除所有好友关系
- * @param string $account_id 用户id,即需要解除所有好友关系的用户
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function sns_friend_delete_all($account_id);
- /**
- * 校验好友关系(默认双向严重)
- * @param string $account_id 需要校验好友的用户id
- * @param string $to_account 校验是否为好友的id
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示、验证结果等字段
- */
- abstract function sns_friend_check($account_id, $to_account);
-
- /**
- * 校验好友关系
- * @param string $account_id 需要校验好友的用户id
- * @param array $to_account_list 校验是否为好友的id集合
- * @param string $check_type 校验类型,目前支持:单向校验"CheckResult_Type_Singal",双向校验"CheckResult_Type_Both"
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示、验证结果等字段
- */
- abstract function sns_friend_check2($account_id, $to_account_list, $check_type);
- /**
- * 拉取好友
- * @param string $account_id 需要获取好友的用户id
- * @return array 通过解析REST接口json返回包得到的关联数组,包含拉取到的好友信息、成功与否及错误提示等字段
- */
- abstract function sns_friend_get_all($account_id);
-
- /**
- * 拉取好友(高级接口)
- * @param string $account_id 需要获取好友的用户id
- * @param array $tag_list 需要拉取的字段,该拉取协议是一条整合数据的协议,可以指定拉取自己好友的昵称
- * 加好友设置以及对用户的备注等字段,如果需要拉取昵称字段,则这里就需要在Json数组中填入Tag_Profile_IM_Nick.
- * php构造示例:
- *
- * $tag_list = array(
- * "Tag_Profile_IM_Nick", //昵称选项
- * "Tag_SNS_IM_Remark" //备注选项
- * );
- *
- * @return array 通过解析REST接口json返回包得到的关联数组,包含拉取到的好友信息、成功与否及错误提示等字段
- */
- abstract function sns_friend_get_all2($account_id, $tag_list);
- /**
- * 拉取指定好友的信息
- * @param string $account_id 需要拉取好友的帐号
- * @param string $frd_id 需要被拉取的好友
- * @return array 通过解析REST接口json返回包得到的关联数组,包含拉取到的好友信息、成功与否及错误提示等字段
- */
- abstract function sns_friend_get_list($account_id, $frd_id);
- /**
- * 拉取特定好友(高级接口)
- * @param string $account_id 需要拉取好友的帐号
- * @param array $frd_list 拉取好友对象, php构造示例:
- *
- * $frd_list = array();
- * array_push($frd_list, "leckie"); //"leckie" 为需要被拉取的好友id
- *
- * @param array $tag_list 需要拉取属性的选项字段, 该拉取协议是一条整合数据的协议,可以指定拉取自己好友的昵称
- * 、加好友设置以及对用户的备注等字段,如果需要拉取昵称字段,则这里就需要在Json数组中填入Tag_Profile_IM_Nick
- *
- * $tag_list = array(
- * "Tag_Profile_IM_Nick", //昵称选项
- * "Tag_SNS_IM_Remark" //备注选项
- * );
- *
- * @return array 通过解析REST接口json返回包得到的关联数组,包含拉取到的好友信息、成功与否及错误提示等字段
- */
- abstract function sns_friend_get_list2($account_id, $frd_list, $tag_list);
- ################################ 群组管理 ###################################
-
- /**
- * 获取app中所有群组, 如果APP中的总群数量超过10000个,最多只会返回10000个(如果需要获取完整必须使用高级接口)
- * @return array 通过解析REST接口json返回包得到的关联数组,包含拉取到的群组信息、成功与否及错误提示等字段
- */
- abstract function group_get_appid_group_list();
-
- /**
- * 获取app中所有群组(高级接口)
- * @param int $limit 最多获取多少个群,不得超过10000, 如果不填,获取能获取的最大数量的群.
- * @param int $offset 控制从整个群组列表中的第多少个开始读取(从0开始). 对于分页请求(页码数字从1开始),每
- * 一页的Offset值应当为:(页码数-1)×每页展示的群组数量, 如果不填从0开始.
- * @param string $group_type 如果仅需要返回特定群组形态的群组,可以通过GroupType进行过滤,但此时返回的TotalCount
- * 的含义就变成了APP中该群组形态的群组总数. 例如:假设APP旗下总共50000个群组,其中有20000个为公开群组,如
- * 果将请求包体中的GroupType设置为Public,那么不论limit和offset怎样设置,应答包体中的TotalCount都为20000,
- * 且GroupIdList中的群组全部为公开群组.
- * @return array 通过解析REST接口json返回包得到的关联数组,包含拉取到的群组信息、成功与否及错误提示等字段
- */
- abstract function group_get_appid_group_list2($limit, $offset, $group_type);
-
- /**
- * 创建群
- * @param string $group_type 群类型, 包括Public(公开群), Private(私密群), ChatRoom(聊天室)
- * @param string $group_name 群名称
- * @param string $owner_id 群主id, 自动添加到群成员中.如果不填,则群没有群主
- * @return array 通过解析REST接口json返回包得到的关联数组,包含新建的群号、成功与否、错误提示等字段
- */
- abstract function group_create_group($group_type, $group_name, $owner_id);
-
- /**
- * 创建群(高级接口)
- * @param string $group_type 群类型(包括Public(公开群), Private(私密群), ChatRoom(聊天室))
- * @param string $group_name 群名称
- * @param string $owner_id 群主id, 自动添加到群成员中.如果不填,群没有群主
- * @param array $info_set 存储群组基本信息的字典,内容包括用introduction 群简介, group_id 自定义群组显示出来的id,
- * notification 群公告, face_url 群头像url地址, max_member_num 最大群成员数量, apply_join 申请加群处理方式
- * (比如FreeAccess 自由加入). php构造示例:
- *
- * $info_set = array(
- * 'introduction' => "群简介"(string),
- * 'group_id' => "自定义群组id"(string),
- * 'notificatoin' => "群公告"(string),
- * 'face_url' => "群头像url地址"(string),
- * 'max_member_num' => 最大群成员数量(int),
- * 'apply_join' => "申请加群的处理方式"(string)
- * );
- *
- * @param array $mem_list 初始群成员列表,最多500个,每个群成员由Member_Account(用户id), Role(角色, 比如管理员Admin,
- * 普通成员Member)组成. php构造示例:
- *
- * $mem_list = array();
- * $mem_account = array()(
- * "Member_Account" => "bob", // 成员id
- * "Role" => "Admin" // 赋予该成员的身份,目前备选项只有Admin
- * );
- * array_push($account_list, $mem_account); //$mem_account为用户id,需要用户传递
- *
- * @return array 通过解析REST接口json返回包得到的关联数组,包含新建的群号、成功与否、错误提示等字段
- */
- abstract function group_create_group2($group_type, $group_name, $owner_id, $info_set, $mem_list);
- /**
- * 转让群组
- * @param string $group_id 需要转让的群组id
- * @param string $new_owner 需要设置的新群主id
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function group_change_group_owner($group_id, $new_owner);
- /**
- * 获取群组详细信息
- * @param string $group_id 需要获取信息的群组id
- * @return array 通过解析REST接口json返回包得到的关联数组,包含拉取到的群组信息(如果成功)、成功与否、错误提示等字段
- */
- abstract function group_get_group_info($group_id);
-
- /**
- * 获取群组详细信息(高级接口)
- * @param array $group_list 群组集合. php构造示例:
- *
- * $group_list = array();
- * array_push($group_list, "group_id"); //group_id 为群组号码
- *
- * @param array $base_info_filter 基础信息字段过滤器. php构造示例:
- *
- * $base_info_filter = array(
- * "Type", //群类型(包括Public(公开群), Private(私密群), ChatRoom(聊天室))
- * "Name", //群名称
- * "Introduction", //群简介
- * "Notification", //群公告
- * "FaceUrl", //群头像url地址
- * "CreateTime", //群组创建时间
- * "Owner_Account", //群主id
- * "LastInfoTime", //最后一次系统通知时间
- * "LastMsgTime", //最后一次消息发送时间
- * "MemberNum", //群组当前成员数目
- * "MaxMemberNum", //群组内最大成员数目
- * "ApplyJoinOption" //申请加群处理方式(比如FreeAccess 自由加入)
- * );
- *
- * @param array $member_info_filter 成员信息字段过滤器, php构造示例:
- *
- * $member_info_filter = array(
- * "Account", // 成员ID
- * "Role", // 成员身份
- *
- * "JoinTime", // 成员加入时间
- * "LastSendMsgTime", // 该成员最后一次发送消息时间
- * "ShutUpUntil" // 该成员被禁言直到某时间
- * );
- *
- * @param array $app_define_filter 群组维度的自定义字段过滤器, php构造示例:
- *
- * $app_define_filter = array(
- * "GroupTestData1", //自定义数据
- * );
- * @return array 通过解析REST接口json返回包得到的关联数组,包含拉取到的群组信息(如果成功)、成功与否、错误提示等字段
- */
- abstract function group_get_group_info2($group_list, $base_info_filter, $member_info_filter, $app_define_filter);
-
- /**
- * 获取群组成员详细信息
- * @param string $group_id 群组id
- * @param int $limit 最多获取多少个成员, 如果不填, 获取全部成员
- * @param int $offset 从第几个成员开始获取, 如果不填, 从第一个成员开始获取
- * @return array 通过解析REST接口json返回包得到的关联数组,包含拉取到的群组成员详细信息(如果成功)、成功与否、错误提示等字段
- */
- abstract function group_get_group_member_info($group_id, $limit, $offset);
- /**
- * 修改群组名字
- * @param string $group_id 群组id
- * @param string $group_name 将其作为群组名字
- * @return string 返回成功与否,及错误提示(如果有错误)
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function group_modify_group_base_info($group_id, $group_name);
-
- /**
- * 修改群组信息(高级接口)
- * @param string $group_id 群组id
- * @param string $group_name 群组名字
- * @param array $info_set 需要修改的群组基本信息的字典集合, 包括群简介,群公告, 群头像url地址,群成员最大数量,
- * 申请加群方式. php构造示例:
- *
- * $info_set = array(
- * 'introduction' => "群简介"(string),
- * 'notification' => "群公告"(string),
- * 'face_url' => "群头像url地址(string)",
- * 'max_member_num' => "群成员最大数量"(string),
- * 'apply_join' => "申请加入方式"(string)
- * );
- *
- * @param array $app_define_list 自定义字段. php构造示例:
- *
- * $app_define_list = array();
- * //定义自定义字段字典数组
- * $app_define_one = array()(
- * "Key": "GroupTestData1", // 需要修改的自定义字段key
- * "Value": "NewData" // 自定义字段的新值
- * );
- * array_push($app_define_list, $app_define_one);
- *
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function group_modify_group_base_info2($group_id, $group_name, $info_set, $app_define_list);
- /**
- * 增加群组成员
- * @param string $group_id 要操作的群组id
- * @param string $member_id 要加入的用户id
- * @param int $silence 是否静默加入, 0为否, 1为是
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function group_add_group_member($group_id, $member_id, $silence);
-
- /**
- * 删除群组成员
- * @param string $group_id 要操作的群组id
- * @param string $member_id 要删除的成员id
- * @param int silence 是否静默删除, 0为否,1为是
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function group_delete_group_member($group_id, $member_id, $silence);
-
- /**
- * 修改群成员身份
- * @param string $group_id 要操作的群组id
- * @param string $account_id 要操作的用户id
- * @param string $role 用户身份(Admin/Member)
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function group_modify_group_member_info($group_id, $account_id, $role);
-
- /**
- * 修改群成员资料(高级接口)
- * @param string $group_id 要操作的群组id
- * @param string $account_id 用户id
- * @param string $role Admin或者Member, 分别为设置/取消管理员, 为null则不改变成员身份
- * @param string $msg_flag 消息屏蔽类型,比如AcceptAndNotify(接收并提示), 为null则不改变屏蔽类型
- * @param int $shutup_time 禁言时间
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function group_modify_group_member_info2($group_id, $account_id, $role, $msg_flag, $shutup_time);
- /**
- * 解散群
- * @param string $group_id 群组id
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function group_destroy_group($group_id);
- /**
- * 获取某一用户加入的群组
- * @param string $account_id 用户id
- * @return array 通过解析REST接口json返回包得到的关联数组,包含该用户加入的群的信息(如果成功), 成功与否、错误提示等字段
- */
- abstract function group_get_joined_group_list($account_id);
-
- /**
- * 获取某一用户加入的群组(高级接口)
- * @param string $account_id 用户id
- * @param string $group_type 拉取哪种群组形态(Pulic(公开群)/Private(私密群)/ChatRoom(聊天室)),不填为拉取所有
- * @param array $base_info_filter 基础信息字段过滤器. php构造示例:
- *
- * $base_info_filter = array(
- * "Type", //群类型(包括Public(公开群), Private(私密群), ChatRoom(聊天室))
- * "Name", //群名称
- * "Introduction", //群简介
- * "Notification", //群公告
- * "FaceUrl", //群头像url地址
- * "CreateTime", //群组创建时间
- * "Owner_Account", //群主id
- * "LastInfoTime", //最后一次系统通知时间
- * "LastMsgTime", //最后一次消息发送时间
- * "MemberNum", //群组当前成员数目
- * "MaxMemberNum", //群组内最大成员数目
- * "ApplyJoinOption" //申请加群处理方式(比如FreeAccess 自由加入, NeedPermission 需要同意)
- * );
- *
- * @param array $self_info_filter 自身在群内的消息过滤器. php构造示例:
- *
- * $self_info_filter = array(
- * "Role", //群内身份(Amin/Member)
- * "JoinTime", //入群时间
- * "MsgFlag", //消息屏蔽类型
- * "UnreadMsgNum" //未读消息数量
- * );
- * @return array 通过解析REST接口json返回包得到的关联数组,包含该用户加入的群的信息(如果成功), 成功与否、错误提示等字段
- */
- abstract function group_get_joined_group_list2($account_id, $group_type, $base_info_filter, $self_info_filter);
- /**
- * 查询用户在某个群组中的身份
- * @param string $group_id 群组id
- * @param string $member_id 要查询的用户
- * @return array 通过解析REST接口json返回包得到的关联数组,包含该用户在某个群的身份(如果成功), 成功与否、错误提示等字段
- */
- abstract function group_get_role_in_group($group_id, $member_id);
- /**
- * 批量禁言/取消禁言
- * @param string $group_id 群组id
- * @param string $member_id 要禁言/取消禁言 的用户
- * @param int $second 表示禁言多少秒, 0表示取消禁言
- * @return array 通过解析REST接口json返回包得到的关联数组,包含该用户在某个群的身份(如果成功), 成功与否、错误提示等字段
- */
- abstract function group_forbid_send_msg($group_id, $member_id, $second);
- /**
- * 在某一群组里发普通消息
- * @param string $account_id 发送消息的用户
- * @param string $group_id 群组id
- * @param string $text_content 要发送的信息(均为文本消息)
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function group_send_group_msg($account_id, $group_id, $text_content);
-
- /**
- * 在某一群组里发送图片
- * @param string $account_id 发送消息的用户
- * @param string $group_id 群组id
- * @param string $pic_path 要发送图片的本地路径
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function group_send_group_msg_pic($account_id, $group_id, $pic_path);
-
- /**
- * 在某一群组里发普通消息(高级接口)
- * @param string $account_id 发送消息的用户
- * @param string $group_id 群组id
- * @param array $msg_content 要发送的消息集合,这里包括文本消息和表情消息. php构造示例:
- *
- * //创建array $msg_content
- * $msg_content = array();
- * //创建array 所需元素
- * $msg_content_text = array(
- * 'MsgType' => 'TIMTextElem', //文本类型
- * 'MsgContent' => array(
- * 'Text' => "hello", //"hello" 为文本信息
- * )
- *
- * $msg_content_face = array(
- * 'MsgType' => 'TIMTextElem', //表情类型
- * 'MsgContent' => array(
- * 'Data' => "abc\u0000\u0001", //"abc\u0000\u0001" 为图片信息
- * )
- *
- * array_push($msg_content, $msg_content_text);
- * array_push($msg_content, $msg_content_face);
- * );
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function group_send_group_msg2($account_id, $group_id, $msg_content);
- /**
- * 在某一群组发系统消息
- * @param string $group_id 群组id
- * @param string $content 系统通知内容,支持二进制数组
- * @param string $receiver_id 接收者群成员id,为空表示全员下发
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function group_send_group_system_notification($group_id, $content, $receiver_id);
-
- /**
- * 在某一群组发系统消息(高级接口)
- * @param string $group_id 群组id
- * @param string $content 系统通知内容,支持二进制数组
- * @param array $receiver_list 接收此系统提示的用户id集合, 为空表示发送给全员. php构造示例:
- *
- * $receiver_list = array(
- * "peter",
- * "leckie"
- * )
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function group_send_group_system_notification2($group_id, $content, $receiver_list);
- /**
- * 导入群成员(只导入一个成员, 入群时间默认为当前)
- * @param string $group_id 要操作的群组id
- * @param string $member_id 要导入的用户id
- * @param string $role 要导入的用户的身份(现可填值只有Admin),不填默认为Member
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function group_import_group_member($group_id, $member_id, $role);
-
- /**
- * 导入群成员(批量导入)
- * @param string $group_id 要操作的群组id
- * @param string $member_list 要导入的用户id集合,构造示例:
- *
- * $member_list = array();
- * $member_elem = array(
- * "Member_Account" => $member_id,
- * "Role" => $role
- * );
- * array_push($member_list, $member_elem);
- *
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function group_import_group_member2($group_id, $member_list);
-
- /**
- * 导入一条群文本消息
- * @param string $group_id 要操作的群组id
- * @param string $from_account 该消息发送者
- * @param int $text 文本消息内容
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function group_import_group_msg($group_id, $from_account, $text);
-
- /**
- * 导入群消息(高级接口, 一次最多导入20条)
- * @param string $group_id 要操作的群组id
- * @param string $msg_list 消息集合, 构造方式如下:
- *
- * //构造MsgBody
- * $msg_content = array(
- * "Text" => $text
- * );
- * $msg_body_elem = array(
- * "MsgType" => "TIMTextElem",
- * "MsgContent" => $msg_content,
- * );
- * $msg_body_list = array();
- * array_push($msg_body_list, $msg_body_elem);
- * //构造MsgList的一个元素
- * $msg_list_elem = array(
- * "From_Account" => $from_account,
- * "SendTime" => time(),
- * "Random" => rand(1, 65535),
- * "MsgBody" => $msg_body_list
- * );
- * //构造MsgList
- * $msg_list = array();
- * array_push($msg_list, $msg_list_elem);
- *
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function group_import_group_msg2($group_id, $msg_list);
-
- /**
- * 设置群组成员未读计数
- * @param string $group_id 要操作的群组id
- * @param string $member_account 要操作的群成员
- * @param int $unread_msg_num 该成员的未读计数
- * @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
- */
- abstract function group_set_unread_msg_num($group_id, $member_account, $unread_msg_num);
- ################################ 通用接口 ###################################
- /**
- * 直接访问RestApi
- * 建议仅在没有合适接口时才考虑使用
- * @param array $req_body 相应RestApi所需要的请求包体内容
- * @return array 通过解析REST接口json返回包得到的关联数组, 其中包含成功与否、及错误提示(如果有错误)等字段
- */
- abstract function comm_rest($server_name, $command, $req_body);
- }
- ?>
|