环信成立于2013年4月,是一家全通讯能力云服务提供商。产品包括全球最大的即时通讯云 PaaS 平台——环信即时通讯云.
1、注册环信帐号最近在工作中遇到要整合环信即时通讯,通过在网上搜索没有搜到特别全的案例,故此自己一点一点翻阅开发文档进行开发,以此记录下来和广大博友分享。
由于项目保密,故此稍后讲述将以干净的ThinkPHP框架代码进行整合。
要想使用环信即时通讯系统,首先你要注册一个环信帐号,在里面添加好自己的应用,获取环信后台生成的“ client_id、client_secret、org_name、app_name” 。已备稍后在整合开发中进行使用。
关于如何注册环信帐号,如何添加自己的应用博主就不在这里一一讲述了,这不是本博文的重点。
2、下载环信的DEMO
1) 可以在本人的资源模块进行下载(包含ThinkPHP,已整合好);
2) 可以在环信的官网中进行下载;
3) 可以通过GitHub进行下载;Git地址:https://github.com/easemob/emchat-server-examples.git
3、整合第一步:将文件放入到框架中
将下载到的文件解压得到 “ Easemob.class.php” 文件放入到ThinkPHP框架的核心库中。也就是 “ \ThinkPHP\Library\Think ” 文件夹下。在 “ Easemob.class.php ” 添加命名空间。
//命名空间 namespace Think;
4、整合第二步:在控制器引入Easemob类
我们要使用“ Easemob.class.php ” 文件就要在控制器中引入。
//将Easemob类引入到控制器 //我们应该尽量避免使用require、require_one use Think\Easemob;
5、整合第三步:开始在控制器使用
将自己在注册成为环信即时通讯系统用户,添加自己的应用后得到的:“ client_id、client_secret、org_name、app_name” 拷贝下来。
$e = new Easemob($options); $param['groupname'] = $groupName; $param['desc'] = $desc; $param['public'] = true; $param['ower'] = $ower; $param['members'] = $members; return $e->createGroup($param); }} 这样我们就可以使用了。<?php namespace Home\Controller; use Think\Controller; use Think\Easemob; class IndexController extends Controller { public function index() { $this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>欢迎使用 <b>ThinkPHP</b>!</p></div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>', 'utf-8'); } /** * 在环信即时通讯系统注册为IM用户 * @param $username 用户名 * @param $password 登录密码 * @param $nickname 昵称 */ public function registerImUser($username, $password, $nickname) { $options['client_id'] = 'xxxxxxxxxxxxxxxxxxxxxxxxx'; $options['client_secret'] = '###########################'; $options['org_name'] = '*******'; $options['app_name'] = '@@@@@@@'; $e = new Easemob($options); //传入用户名和登录密码参数注册为IM用户 $result_u = $e->createUser($username, $password); //传入注册用户名和昵称,修改用户昵称 $result_n = $e->editNickname($username, $nickname); //return $result_u; return $result_n; } /** * 用于在环信即时通讯系统创建聊天群 * @param $groupName string 聊天群组名——不能使用汉字 * @param $desc string 聊天群组描述 * @param $ower string 聊天群主名——也就是在环信后台注册的IM用户名 * @param $members array 聊天群组员——也就是在环信后台注册的IM用户名 */ public function createGroup($groupName, $desc, $ower, $members) { <pre name="code" class="php"><span style="white-space:pre"> </span>$options['client_id'] = 'xxxxxxxxxxxxxxxxxxxxxxxxx'; $options['client_secret'] = '###########################'; $options['org_name'] = '*******'; $options['app_name'] = '@@@@@@@';
6、多余的话
1) 里面写好的方法很多都在压缩包里,请大家下载查看,像创建单个用户、创建批量用户、重置用户密码、查看好友、查看黑名单、修改群组信息等等大概70个方法供大家使用;
2) 从上述代码我们可以看出,每次重新 “ new Easemob($options) ” 的时候,我们总要先写四条:
这样看起来有点代码冗余,我们可以把这四个值直接写到 “ Easemob.class.php ” 类文件的构造函数中://你的client_id值 $options['client_id'] = 'xxxxxxxxxxxxxxxxxxxxxxxxx'; //你的client_secret值 $options['client_secret'] = '###########################'; //你的org_name注册名 $options['org_name'] = '*******'; //你的应用名称app_name $options['app_name'] = '@@@@@@@';
/** * 初始化参数 * * @param array $options * @param $options ['client_id'] * @param $options ['client_secret'] * @param $options ['org_name'] * @param $options ['app_name'] */ public function __construct($options) { $this->client_id = isset ($options ['client_id']) ? $options ['client_id'] : 'xxxxxxxxxxxxxxxxxxxxxx'; $this->client_secret = isset ($options ['client_secret']) ? $options ['client_secret'] : '#####################'; $this->org_name = isset ($options ['org_name']) ? $options ['org_name'] : '********'; $this->app_name = isset ($options ['app_name']) ? $options ['app_name'] : '@@@@@@@@'; if (!empty ($this->org_name) && !empty ($this->app_name)) { $this->url = 'https://a1.easemob.com/' . $this->org_name . '/' . $this->app_name . '/'; } }
结语:编程真的是一件很美好的事。