Browse Source

环信配置与类库

lizhen_gitee 11 months ago
parent
commit
fb06ef7a16
2 changed files with 308 additions and 0 deletions
  1. 301 0
      application/common/library/Easemob.php
  2. 7 0
      application/config.php

+ 301 - 0
application/common/library/Easemob.php

@@ -0,0 +1,301 @@
+<?php
+namespace app\common\library;
+
+use Easemob\Auth;
+use Easemob\Group;
+use Easemob\User;
+use Easemob\Room;
+
+class Easemob {
+
+    protected $auth;
+    protected $room;
+    protected $user;
+    protected $group;
+
+    public function __construct() {
+
+        //初始化配置
+        $easemob_config               = config('easemob');
+        $appKey                       = $easemob_config['appkey'];
+        $clientIdOrAppID              = $easemob_config['client_id'];
+        $clientSecretOrAppCertificate = $easemob_config['client_secret'];
+
+        $this->auth = new Auth($appKey,$clientIdOrAppID,$clientSecretOrAppCertificate);
+        $this->room = new Room($this->auth);
+        $this->user = new User($this->auth);
+        $this->group = new Group($this->auth);
+    }
+
+
+    /////////////////////////////////管理用户/////////////////////////////
+
+    //注册用户
+    /*
+        array(6) {
+            ["uuid"] => string(36) "9783ddc0-7eeb-11ee-bbeb-913291843983"
+            ["type"] => string(4) "user"
+            ["created"] => int(1699526081953)
+            ["modified"] => int(1699526081953)
+            ["username"] => string(2) "12"
+            ["activated"] => bool(true)
+        }
+    */
+    public function user_create($user_id){
+
+        $user_id = '' . $user_id . '';
+        $register_data = ['username'=>$user_id,'password'=>123456];
+
+        $rs = $this->user->create($register_data);
+        //dump($rs);
+        if(isset($rs['code'])){
+            return false;
+        }
+        if(isset($rs['uuid'])){
+            return true;
+        }
+        //默认
+        return false;
+    }
+
+
+    /////////////////////////////////管理群组/////////////////////////////
+
+    //创建群组,返回群组id
+    public function group_createPublicGroup($user_id,$guild_name,$guild_desc,$maxusers){
+        $user_id = ''.$user_id.'';
+        $rs = $this->group->createPublicGroup($user_id,$guild_name,$guild_desc,[],$maxusers);
+        return $rs;
+    }
+
+    //添加一个群组成员
+    //$rs === true;
+    public function group_addGroupMember($groupId,$user_id){
+        $rs = $this->group->addGroupMember($groupId,$user_id);
+        return $rs;
+    }
+
+    //移除一个群组成员
+    public function group_removeGroupMember($groupId,$user_id)
+    {
+        $rs = $this->group->removeGroupMember($groupId,$user_id);
+        return $rs;
+    }
+
+    //添加一个管理员
+    public function group_addGroupAdmin($groupId,$user_id){
+        $rs = $this->group->addGroupAdmin($groupId,$user_id);
+        return $rs;
+    }
+
+    //移除一个管理员
+    public function group_removeGroupAdmin($groupId,$user_id){
+        $rs = $this->group->removeGroupAdmin($groupId,$user_id);
+        return $rs;
+    }
+
+    /////////////////////////////////管理聊天室/////////////////////////////
+    //https://docs-im-beta.easemob.com/document/server-side/chatroom.html
+
+    //获取 app 中的聊天室
+
+    /**
+     * 获取用户所加入的聊天室
+     *
+        array(2) {
+            [0] => array(3) {
+                ["id"] => string(15) "230909536174085"
+                ["name"] => string(15) "聊天室名称"
+                ["disabled"] => string(5) "false"
+            }
+            [1] => array(3) {
+                ["id"] => string(15) "230909515202562"
+                ["name"] => string(15) "888888的房间"
+                ["disabled"] => string(5) "false"
+            }
+        }
+     */
+    public function room_listAllRoomsUserJoined($user_id){
+        $user_id = '' . $user_id . '';
+        $rs = $this->room->listAllRoomsUserJoined($user_id);
+        return $rs;
+    }
+
+    //查询聊天室详情
+    /*
+    array(14) {
+        ["id"] => string(15) "230909515202562"
+        ["name"] => string(15) "888888的房间"
+        ["description"] => string(15) "888888的房间"
+        ["membersonly"] => bool(false)
+        ["allowinvites"] => bool(false)
+        ["maxusers"] => int(1000)
+        ["owner"] => string(1) "2"
+        ["created"] => int(1699610874211)
+        ["custom"] => string(0) ""
+        ["mute"] => bool(false)
+        ["affiliations_count"] => int(1)
+        ["disabled"] => bool(false)
+        ["affiliations"] => array(1) {
+            [0] => array(1) {
+                ["owner"] => string(1) "2"
+            }
+        }
+        ["public"] => bool(true)
+    }
+    */
+    public function room_getRoom($roomId){
+        $rs = $this->room->getRoom($roomId);
+        return $rs;
+    }
+
+    //创建聊天室
+    /*
+        string(15) "230821166383116"
+     */
+    public function room_createRoom($name,$info,$user_id){
+        $user_id = '' . $user_id . '';
+        $room_id = $this->room->createRoom($name,$info,$user_id,[$user_id],10000);
+        return $room_id;
+    }
+
+    //修改聊天室信息
+    /*
+        bool(true)
+     */
+    public function room_updateRoom($room_id,$name,$description,$maxusers = false){
+        $data = [
+            'room_id' => $room_id,
+            'name'    => $name,
+            'description'=>$description,
+        ];
+        if($maxusers !== false){
+            $data['maxusers'] = $maxusers;
+        }
+        $rs = $this->room->updateRoom($data);
+        return $rs;
+    }
+
+    //删除聊天室
+    //获取聊天室公告
+    //修改聊天室公告
+    //设置聊天室自定义属性
+
+    //获取聊天室自定义属性
+    /*
+    array(14) {
+        ["seat4"] => string(3) "555"
+        ["seat3"] => string(3) "555"
+        ["seat2"] => string(3) "555"
+        ["seat1"] => string(3) "555"
+        ["seat8"] => string(3) "555"
+        ["sate1"] => string(1) "5"
+        ["seat7"] => string(3) "555"
+        ["sate2"] => string(1) "6"
+        ["seat6"] => string(3) "555"
+        ["seat5"] => string(3) "555"
+        ["sate3"] => string(1) "7"
+        ["seat9"] => string(3) "555"
+        ["sate4"] => string(1) "8"
+        ["seat10"] => string(3) "555"
+    }
+    */
+    public function room_getRoomCustomAttribute($room_id,$keys){
+        $rs = $this->room->getRoomCustomAttribute($room_id,$keys);
+        return $rs;
+    }
+    //删除聊天室自定义属性
+
+    //强制设置聊天室自定义属性
+    //初次设置新增,或修改都可用,一次请求的数组大小为10,可多次设置,共100个
+    /*
+        array(2) {
+          ["successKeys"] => array(10) {
+            [0] => string(5) "seat1"
+            [1] => string(5) "seat2"
+            [2] => string(5) "seat3"
+            [3] => string(5) "seat4"
+            [4] => string(5) "seat5"
+            [5] => string(5) "seat6"
+            [6] => string(5) "seat7"
+            [7] => string(5) "seat8"
+            [8] => string(5) "seat9"
+            [9] => string(6) "seat10"
+          }
+          ["errorKeys"] => array(0) {
+          }
+        }
+     */
+    public function room_setRoomCustomAttributeForced($room_id,$owner_id,$matedata){
+        $owner_id = ''.$owner_id.'';
+        //先进入房间
+        $rs = $this->room->addRoomMember($room_id,$owner_id);
+        //dump($rs);
+        //再设置
+        $rs = $this->room->setRoomCustomAttributeForced($room_id,$owner_id,$matedata);
+        return $rs;
+    }
+
+    //强制删除聊天室自定义属性
+    /*
+        array(2) {
+            ["successKeys"] => array(1) {
+                [0] => string(5) "sate1"  //被删除的keys
+            }
+            ["errorKeys"] => array(0) {
+            }
+        }
+        //再次删除同一个
+        array(2) {
+            ["successKeys"] => array(0) {
+            }
+            ["errorKeys"] => array(1) {
+                ["sate1"] => string(33) "properties key sate1 is not exist"
+            }
+        }
+    */
+    public function room_deleteRoomCustomAttributeForced($room_id,$owner_id,$keys){
+        $owner_id = ''.$owner_id.'';
+        $rs = $this->room->deleteRoomCustomAttributeForced($room_id,$owner_id,$keys);
+        return $rs;
+    }
+
+    ///////////////管理聊天室成员//////////////////
+
+    //分页获取聊天室成员列表
+    public function room_listRoomMembers($roomId, $pageSize = 10, $pageNum = 1){
+        $rs = $this->room->listRoomMembers($roomId, $pageSize, $pageNum);
+        return $rs;
+    }
+    //添加单个聊天室成员
+    //批量添加聊天室成员
+    //移除单个聊天室成员
+    //批量移除聊天室成员
+    public function room_removeRoomMembers($roomId, $usernames){
+        $rs = $this->room->removeRoomMembers($roomId, $usernames);
+        return $rs;
+    }
+    //获取聊天室管理员列表
+    //添加聊天室管理员
+    public function room_promoteRoomAdmin($roomId, $newadmin){
+        $newadmin = ''.$newadmin.'';
+        $rs = $this->room->promoteRoomAdmin($roomId, $newadmin);
+        //dump($rs);
+        return $rs;
+    }
+    //移除聊天室管理员
+    public function room_demoteRoomAdmin($roomId, $oldadmin){
+        $oldadmin = ''.$oldadmin.'';
+        $rs = $this->room->demoteRoomAdmin($roomId, $oldadmin);
+        //dump($rs);
+        return $rs;
+    }
+
+
+    //////////////////管理黑名单///////////
+    //////////////////管理白名单///////////
+    //////////////////管理禁言///////////
+
+
+
+}

+ 7 - 0
application/config.php

@@ -335,6 +335,13 @@ return [
         'app_code'   => '8b16e70fd1704a66a64654b6da516a19',
     ],
 
+    //环信 健康正式
+    'easemob' => [
+        'appkey'        => '1116240417150687#dafu',
+        'client_id'     => 'YXA69HaT8BCDQACgc0opfSX-0g',
+        'client_secret' => 'YXA6chqBGcWoRH4OKw5Uc4jTvk5bSEs',
+    ],
+
     //腾讯cos
     /*'cos'                  => [
         'appid' => '',