| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | <?phpnamespace 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;    }}
 |