环信即时通讯-服务器端集成(REST API)-php版demo
原文地址:http://www.thinkphp.cn/code/1259.html
注意问题:获取APP管理员Token有次数限制,获取后需要缓存起来。
<?php
class Hxcall
{
private $app_key = "qqqqqq#aaaaaa";
private $client_id = "sdasdasdasd";
private $client_secret = "sdsdsdsdsd";
private $url = "https://a1.easemob.com/qqqqqq/aaaaaa";
/*
* 获取APP管理员Token
*/
function __construct()
{
if(file_exists("./Application/Library/Token/token") && time()-filemtime("./Application/Library/Token/token")<=86400){
$this->token = file_get_contents("./Application/Library/Token/token");
}else{
$url = $this->url . "/token";
$data = array(
"grant_type" => "client_credentials",
"client_id" => $this->client_id,
"client_secret" => $this->client_secret
);
$rs = json_decode($this->curl($url, $data), true);
$this->token = $rs["access_token"];
file_put_contents("./Application/Library/Token/token", $rs["access_token"]);
}
}
/*
* 注册IM用户(授权注册)
*/
public function hx_register($username, $password, $nickname)
{
$url = $this->url . "/users";
$data = array(
"username" => $username,
"password" => $password,
"nickname" => $nickname
);
$header = array(
"Content-Type: application/json",
"Authorization: Bearer " . $this->token
);
return $this->curl($url, $data, $header, "POST");
}
/*
* 给IM用户的添加好友
*/
public function hx_contacts($owner_username, $friend_username)
{
$url = $this->url . "/users/${owner_username}/contacts/users/${friend_username}";
$header = array(
"Authorization: Bearer " . $this->token
);
return $this->curl($url, "", $header, "POST");
}
/*
* 解除IM用户的好友关系
*/
public function hx_contacts_delete($owner_username, $friend_username)
{
$url = $this->url . "/users/${owner_username}/contacts/users/${friend_username}";
$header = array(
"Authorization: Bearer " . $this->token
);
return $this->curl($url, "", $header, "DELETE");
}
/*
* 查看好友
*/
public function hx_contacts_user($owner_username)
{
$url = $this->url . "/users/${owner_username}/contacts/users";
$header = array(
"Authorization: Bearer " . $this->token
);
return $this->curl($url, "", $header, "GET");
}
/* 发送文本消息 */
public function hx_send($sender, $receiver, $msg)
{
$url = $this->url . "/messages";
$header = array(
"Authorization: Bearer " . $this->token
);
$data = array(
"target_type" => "users",
"target" => array(
"0" => $receiver
),
"msg" => array(
"type" => "txt",
"msg" => $msg
),
"from" => $sender,
"ext" => array(
"attr1" => "v1",
"attr2" => "v2"
)
);
return $this->curl($url, $data, $header, "POST");
}
/* 查询离线消息数 获取一个IM用户的离线消息数 */
public function hx_msg_count($owner_username)
{
$url = $this->url . "/users/${owner_username}/offline_msg_count";
$header = array(
"Authorization: Bearer " . $this->token
);
return $this->curl($url, "", $header, "GET");
}
/*
* 获取IM用户[单个]
*/
public function hx_user_info($username)
{
$url = $this->url . "/users/${username}";
$header = array(
"Authorization: Bearer " . $this->token
);
return $this->curl($url, "", $header, "GET");
}
/*
* 获取IM用户[批量]
*/
public function hx_user_infos($limit)
{
$url = $this->url . "/users?${limit}";
$header = array(
"Authorization: Bearer " . $this->token
);
return $this->curl($url, "", $header, "GET");
}
/*
* 重置IM用户密码
*/
public function hx_user_update_password($username, $newpassword)
{
$url = $this->url . "/users/${username}/password";
$header = array(
"Authorization: Bearer " . $this->token
);
$data["newpassword"] = $newpassword;
return $this->curl($url, $data, $header, "PUT");
}
/*
* 删除IM用户[单个]
*/
public function hx_user_delete($username)
{
$url = $this->url . "/users/${username}";
$header = array(
"Authorization: Bearer " . $this->token
);
return $this->curl($url, "", $header, "DELETE");
}
/*
* 修改用户昵称
*/
public function hx_user_update_nickname($username, $nickname)
{
$url = $this->url . "/users/${username}";
$header = array(
"Authorization: Bearer " . $this->token
);
$data["nickname"] = $nickname;
return $this->curl($url, $data, $header, "PUT");
}
/*
*
* curl
*/
private function curl($url, $data, $header = false, $method = "POST")
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if ($header) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
}
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
if ($data) {
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
}
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$ret = curl_exec($ch);
return $ret;
}
}
$rs = new Hxcall();
// 注册的用户
//echo $rs->hx_register("qwerasd", "qazwsx", "福州123" );
// 给IM用户的添加好友
// echo $rs->hx_contacts("admin888", "qwerasd");
/* 发送文本消息 */
// echo $rs->hx_send("213123","admin888","dfadsr214wefaedf");
/* 消息数统计 */
// echo $rs->hx_msg_count("admin888");
/* 获取IM用户[单个] */
// echo $rs->hx_user_info("admin888");
/* 获取IM用户[批量] */
echo $rs->hx_user_infos("20");
/* 删除IM用户[单个] */
// echo $rs->hx_user_delete("wwwwww");
/* 修改用户昵称 */
// echo $rs->hx_user_update_nickname("asaxcfasdd","网络科技");
/* 重置IM用户密码 */
// echo $rs->hx_user_update_password("asaxcfasdd","asdad");
/* 解除IM用户的好友关系 */
// echo $rs->hx_contacts_delete("admin888", "qqqqqqqq");
/* 查看好友 */
//echo $rs->hx_contacts_user("admin888");
- 上一篇: ThinkPHP3.2URL重写隐藏应用的入口文件index.php
- 下一篇:没有了