# PHP Server SDK

    # 介绍

    PHP SDK 是对环信 IM REST API 的封装,旨在节省服务器端开发者对接环信 API 的时间,只需要配置自己的 App Key 相关信息即可使用。

    # 功能

    PHP SDK 提供了用户、消息、群组、聊天室等资源的操作管理能力。

    # 依赖

    • PHP 5.3+

    # 安装

    直接使用 composer (opens new window) 进行安装

    composer require maniac/easemob-php
    

    # 目录结构

    • examples 示例文件目录
    • runtime 临时文件、缓存文件目录
    • src 核心文件目录
    • tests 测试文件目录

    # 准备

    使用 PHP SDK 之前,需准备环信 App Key、Client ID 和 Client Secret。

    如果你有环信管理后台账号并创建过应用,请先登录环信管理后台,点击 这里 (opens new window),然后在 “应用列表” 中点击 “查看” 即可获取 appkey、Client ID 和 ClientSecret。

    如果你没有环信管理后台账号,请先注册账号,点击 这里 (opens new window),注册成功后请登录,然后点击 “添加应用”,添加成功后点击 “查看” 即可获取 appkey、Client ID 和 ClientSecret。

    # 使用

    如果使用 Laravel、YII、ThinkPHP 之类的框架,composer 安装的库会自动加载,如果没有使用框架,需要手动引入 vendor/autoload.php 文件。

    使用所有的类之前,均需先初始化授权对象,然后在初始化其他类时传入授权对象。

    require 'vendor/autoload.php';
    
    use Easemob\Auth;
    use Easemob\User;
    
    $auth = new Auth("appKey", "Client ID", "ClientSecret");
    $user = new User($auth);
    

    根据业务资源,API 分为:

    • Attachment 用于上传下载附件
    • Block 用于限制访问(将用户加入黑名单、群组/聊天室禁言等)
    • Contact 用于管理联系人(添加好友等)
    • Group 用于管理群组
    • Message 用于发送消息
    • User 用于管理用户
    • UserMetadata 用于管理用户属性
    • Push 用于管理用户推送(设置推送免打扰等)
    • Room 用于管理聊天室
    • WhiteList 用于管理白名单

    每个业务资源对应一个方法,例如,用户相关的 API,都可以在 User 类中找到。

    例如,注册用户,示例代码如下:

    require 'vendor/autoload.php';
    
    use Easemob\Auth;
    use Easemob\User;
    
    $auth = new Auth("appKey", "Client ID", "ClientSecret");
    $user = new User($auth);
    
    // 注册单个用户
    $data = array(
        'username' => 'user1',
        'password' => 'user1',
        'nickname' => 'user1',
    );
    $user->create($data);
    
    
    // 批量注册用户
    $data = array(
        array(
            'username' => 'user2',
            'password' => 'user2',
            'nickname' => 'user2',
        ),
        array(
            'username' => 'user3',
            'password' => 'user3',
            'nickname' => 'user3',
        ),
    );
    $user->create($data);
    

    # 参考

    # 常见问题

    1. 关于 PHP 低版本中文乱码问题

    在纯 PHP 页面中使用

    header("Content-Type:text/html;charset=utf-8");
    

    在 HTML 和 PHP 混编的页面中使用

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    
    1. 关于 SDK 返回的错误码和错误描述

    PHP SDK 会直接返回 REST API 的错误码及错误描述,具体请参考 服务器端 REST API 常见错误码

    1. 使用代理的情况

    初始化授权对象 Auth 之后,可以设置代理:

    require 'vendor/autoload.php';
    
    use Easemob\Auth;
    use Easemob\Http\Http
    
    $easemob = $config['easemob'];
    $auth = new Auth("appKey", "Client ID", "ClientSecret");
    // 设置代理
    Http::setProxy("ip地址", 8080);
    
    更新时间:2022-09-15 17:54:52