123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <?php
- namespace app\common\service;
- use getusersig\getusersig;
- use tencentim\tencentim;
- use think\Db;
- use think\Exception;
- class TenimService
- {
- private $url = '';
- /**
- * 初始化方法
- */
- public function __construct()
- {
- $random = rand(10000000,99999999);
- $usersig = $this->usersig("administrator");
- // 获取配置信息
- $config = config("tencent_im");
- $url = "?sdkappid=".$config["sdkappid"];
- $url .= "&identifier=administrator";
- $url .= "&usersig=".$usersig;
- $url .= "&random=".$random;
- $url .= "&contenttype=json";
- $this->url = $url;
- }
- /**
- * 获取usersig签名-具体操作
- */
- private function usersig($user_id) {
- // 获取配置信息
- $config = config("tencent_im");
- $usersigObj = new getusersig($config["sdkappid"],$config["key"]);
- $usersig = $usersigObj->genUserSig($user_id);
- return $usersig;
- }
- /**
- * 获取房间用户
- */
- public function getRoomUser($params=[])
- {
- $result = [
- 'status' => 1,
- 'msg' => '获取成功',
- 'data' => [],
- ];
- try {
- $partyArr = isset($params['party_ids']) ? $params['party_ids'] : [];
- $url = "https://console.tim.qq.com/v4/group_open_avchatroom_http_svc/get_members".$this->url;
- $tencentObj = new tencentim($url);
- //获取用户 ["57","62","63","105","106","107","108","109","116","119"]
- $memberList = [];
- if(!empty($partyArr)) {
- foreach ($partyArr as $key => $value) {
- $data["GroupId"] = (string)$value;
- $tencentRes = $tencentObj->toSend($data);
- if (isset($tencentRes['ActionStatus']) && $tencentRes['ActionStatus'] == 'OK') {
- if (isset($tencentRes['MemberList']) && !empty($tencentRes['MemberList'])) {
- foreach ($tencentRes['MemberList'] as $ukey => $uval) {
- $memberList[$value]['member_list'][] = [
- 'avatar' => $uval['Avatar'],
- 'user_id'=> $uval['Member_Account'],
- 'nickname' => $uval['NickName'],
- ];
- }
- $memberList[$value]['online_num'] = count($memberList[$value]['member_list']);
- }
- }
- }
- }
- $result['data'] = $memberList;
- } catch (\Exception $e) {
- $result['status'] = 0;
- $result['msg'] = $e->getMessage();
- }
- return $result;
- }
- }
|