{"id":18438137,"url":"https://github.com/easemob/im-php-server-sdk","last_synced_at":"2025-04-07T20:35:00.328Z","repository":{"id":37981568,"uuid":"490932189","full_name":"easemob/im-php-server-sdk","owner":"easemob","description":"PHP Server SDK for IM.","archived":false,"fork":false,"pushed_at":"2024-07-13T15:52:55.000Z","size":668,"stargazers_count":0,"open_issues_count":2,"forks_count":4,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-10-28T16:56:46.204Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/easemob.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-05-11T02:38:37.000Z","updated_at":"2023-02-22T01:41:18.000Z","dependencies_parsed_at":"2022-09-06T20:01:21.247Z","dependency_job_id":null,"html_url":"https://github.com/easemob/im-php-server-sdk","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easemob%2Fim-php-server-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easemob%2Fim-php-server-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easemob%2Fim-php-server-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easemob%2Fim-php-server-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/easemob","download_url":"https://codeload.github.com/easemob/im-php-server-sdk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223291978,"owners_count":17121044,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T06:18:44.700Z","updated_at":"2024-11-06T06:18:46.868Z","avatar_url":"https://github.com/easemob.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"## PHP SDK\n\n### 介绍\nPHP SDK 是对环信 IM [服务端 API](https://docs-im.easemob.com/im/server/ready/intro) 的封装，这样做是为了节省服务器端开发者对接环信 API 的时间，只需要配置自己的 appkey 相关信息即可使用。\n\n### 功能\nPHP SDK 提供了用户、消息、群组、聊天室等资源的操作管理能力。\n\n### 依赖\n- PHP 5.3+\n\n### 安装\n直接使用 [composer](https://www.phpcomposer.com/) 进行安装\n\n```\ncomposer require maniac/easemob-php\n```\n\n### 目录结构\n- examples 示例文件目录\n- runtime 临时文件、缓存文件目录\n- src 核心文件目录\n- tests 测试文件目录\n\n### 准备\n在使用 PHP SDK 之前，需要准备环信 appkey、Client ID、ClientSecret。\n\n如果你有环信管理后台账号并创建过应用，请先登录环信管理后台，点击 [这里](https://console.easemob.com/user/login)，然后到“应用列表” → 点击“查看”即可获取到 appkey、Client ID、ClientSecret。\n\n如果你没有环信管理后台账号，请先注册账号，点击 [这里](https://console.easemob.com/user/register)，注册成功后请登录，然后点击“添加应用”，添加成功后点击“查看”即可获取到 appkey、Client ID、ClientSecret。\n\n### 使用\n如果使用 Laravel、YII、ThinkPHP 之类的框架，composer 安装的库会自动加载，如果没有使用框架，需要手动引入 `vendor/autoload.php` 文件。\n\n使用所有的类之前，都要先初始化授权对象，然后再初始化其他类时，传入授权对象\n```php\nrequire 'vendor/autoload.php';\n\nuse Easemob\\Auth;\nuse Easemob\\User;\n\n$auth = new Auth(\"appKey\", \"Client ID\", \"ClientSecret\");\n$user = new User($auth);\n```\n\n根据业务资源，API 分为：\n\n- Attachment 用于上传下载附件\n- Block 用于限制访问(将用户加入黑名单、群组/聊天室禁言等)\n- Contact 用于管理联系人(添加好友等)\n- Group 用于管理群组\n- Message 用于发送消息\n- User 用于管理用户\n- UserMetadata 用于管理用户属性\n- Push 用于管理用户推送(设置推送免打扰等)\n- Room 用于管理聊天室\n- WhiteList 用于管理白名单\n\n每个业务资源对应一个方法，例如，用户相关的 API，都可以在 User 类中找到。\n\n举个例子，我们要注册一个用户，就可以这样写：\n\n```php\nrequire 'vendor/autoload.php';\n\nuse Easemob\\Auth;\nuse Easemob\\User;\n\n$auth = new Auth(\"appKey\", \"Client ID\", \"ClientSecret\");\n$user = new User($auth);\n\n// 注册单个用户\n$data = array(\n    'username' =\u003e 'user1',\n    'password' =\u003e 'user1',\n    'nickname' =\u003e 'user1',\n);\n$user-\u003ecreate($data);\n\n \n// 批量注册用户\n$data = array(\n    array(\n        'username' =\u003e 'user2',\n        'password' =\u003e 'user2',\n        'nickname' =\u003e 'user2',\n    ),\n    array(\n        'username' =\u003e 'user3',\n        'password' =\u003e 'user3',\n        'nickname' =\u003e 'user3',\n    ),\n);\n$user-\u003ecreate($data);\n```\n\n### 参考\n- PHP SDK 的 api 文档在 [这里](https://easemob.github.io/im-php-server-sdk/annotated.html)\n- PHP SDK 开源地址在 [这里](https://github.com/easemob/im-php-server-sdk)\n\n### 常见问题\n\n1.关于 PHP 低版本中文乱码问题\n\n在纯 PHP 页面中使用\n\n```php\nheader(\"Content-Type:text/html;charset=utf-8\");\n```\n\n在 HTML 和 PHP 混编的页面中使用\n\n```html\n\u003cmeta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/\u003e\n```\n\n2.关于 SDK 返回的错误码和错误描述\n\nPHP SDK 会直接返回 REST API 的错误码及错误描述，具体请参考 [服务器端 REST API 常见错误码](https://docs-im.easemob.com/im/other/errorcode/restapi)\n\n3.使用代理的情况\n\n在初始化授权对象 Auth 之后，可以设置代理：\n\n```php\nrequire 'vendor/autoload.php';\n\nuse Easemob\\Auth;\nuse Easemob\\Http\\Http\n\n$easemob = $config['easemob'];\n$auth = new Auth(\"appKey\", \"Client ID\", \"ClientSecret\");\n// 设置代理\nHttp::setProxy(\"ip地址\", 8080);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feasemob%2Fim-php-server-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feasemob%2Fim-php-server-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feasemob%2Fim-php-server-sdk/lists"}