TimRestInterface.class.php
33.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
<?php
namespace Com\IM;
abstract class TimRestInterface
{
/**
* 初始化函数
* @param int $sdkappid 应用的appid
* @param string $identifier 访问接口的用户
* @param string $userSig 用户签名
* @return bool|void
*/
abstract function init($sdkappid, $identifier, $userSig = '');
/**
* 独立模式根据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);
/**
* 消息记录下载
* @param String $chat_type 消息类型,C2C:单发消息 Group:群组消息。
* @param String $msg_time 需要下载的时间段,2015120121表示获取2015年12月1日21:00~21:59的消息的下载地址。
* @return array 通过解析REST接口json返回包得到的关联数组,包含成功与否、错误提示等字段
*/
abstract function get_history($chat_type, $msg_time);
################################ 通用接口 ###################################
/**
* 直接访问RestApi
* 建议仅在没有合适接口时才考虑使用
* @param array $req_body 相应RestApi所需要的请求包体内容
* @return array 通过解析REST接口json返回包得到的关联数组, 其中包含成功与否、及错误提示(如果有错误)等字段
*/
abstract function comm_rest($server_name, $command, $req_body);
}