环信即时通讯---php版
Posted php小小菜鸟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了环信即时通讯---php版相关的知识,希望对你有一定的参考价值。
1 <?php 2 /** 3 * 环信IM 4 * Created by PhpStorm. 5 * User: chao 6 * Date: 2020/12/9 7 * Time: 4:34 PM 8 */ 9 10 11 class HxChat{ 12 private $app_key = ‘123456#abcd‘; 13 private $client_id = ‘hhkhkkkhh‘; 14 private $client_secret = ‘uiuriwrinncj‘; 15 private $url = "https://a1.easemob.com/123456/abcd"; //要与$app_key值保持一致 16 17 /* 18 * 获取APP管理员Token 19 */ 20 function __construct() 21 { 22 $url = $this->url . "/token"; 23 $data = array( 24 ‘grant_type‘ => ‘client_credentials‘, 25 ‘client_id‘ => $this->client_id, 26 ‘client_secret‘ => $this->client_secret 27 ); 28 $rs = json_decode($this->curl($url, $data), true); 29 $this->token = $rs[‘access_token‘]; 30 } 31 32 /** 33 * 注册单个用户(开放) 34 * @param $username 35 * @param $password 36 * @param string $nickname 37 */ 38 public function hx_open_register($username, $password, $nickname=‘‘) 39 { 40 $url = $this->url . "/users"; 41 $data = array( 42 ‘username‘=>$username, 43 ‘password‘=>$password, 44 ‘nickname‘=>$nickname, 45 ); 46 $header = array( 47 ‘Content-Type: application/json‘, 48 ); 49 50 return $this->curl($url, $data, $header, ‘POST‘); 51 } 52 53 /** 54 * 注册单个用户(授权) 55 * @param $username 56 * @param $password 57 * @param string $nickname 58 */ 59 public function hx_auth_register($username, $password, $nickname=‘‘) 60 { 61 $url = $this->url . "/users"; 62 $data = array( 63 ‘username‘=>$username, 64 ‘password‘=>$password, 65 ‘nickname‘=>$nickname, 66 ); 67 $header = array( 68 ‘Content-Type: application/json‘, 69 ‘Authorization: Bearer ‘.$this->token, 70 ); 71 return $this->curl($url, $data, $header, ‘POST‘); 72 73 } 74 75 /** 76 * 添加好友 77 * @param $owner_username 要添加好友的用户名 78 * @param $friend_username 好友用户名 79 * @return mixed 80 */ 81 public function hx_add_friend($owner_username, $friend_username) 82 { 83 $url = $this->url . "/users/${owner_username}/contacts/users/${friend_username}"; 84 $header = array( 85 ‘Content-Type: application/json‘, 86 ‘Authorization: Bearer ‘.$this->token, 87 ); 88 89 return $this->curl($url, ‘‘ , $header, ‘POST‘); 90 } 91 92 /** 93 * 移除好友 94 * @param $owner_username 95 * @param $friend_username 96 * @return mixed 97 */ 98 public function hx_contacts_delete($owner_username, $friend_username) 99 { 100 $url = $this->url . "/users/${owner_username}/contacts/users/${friend_username}"; 101 $header = array( 102 ‘Authorization: Bearer ‘ . $this->token 103 ); 104 return $this->curl($url, "", $header, "DELETE"); 105 } 106 107 /** 108 * 获取好友列表 109 * @param $owner_username 110 * @return mixed 111 */ 112 public function hx_contacts_user($owner_username) 113 { 114 $url = $this->url . "/users/${owner_username}/contacts/users"; 115 $header = array( 116 ‘Authorization: Bearer ‘ . $this->token 117 ); 118 return $this->curl($url, "", $header, "GET"); 119 } 120 121 /** 122 * 发送文本消息 123 * @param $sender 发送者 124 * @param $receiver 接收者 125 * @param $msg 消息 126 * @return mixed 127 */ 128 public function hx_send_txt_msg($sender, $receiver, $msg) 129 { 130 $url = $this->url . "/messages"; 131 $header = array( 132 ‘Authorization: Bearer ‘ . $this->token, 133 ‘Content-Type: application/json‘ 134 ); 135 $data = array( 136 ‘target_type‘=> ‘users‘, 137 ‘target‘=>[$receiver], 138 ‘msg‘=>[‘msg‘=>$msg, ‘type‘=>‘txt‘], 139 ‘from‘=>$sender, 140 ); 141 return $this->curl($url, $data, $header, "POST"); 142 } 143 144 /** 145 * curl 146 * @param $url 147 * @param $data 148 * @param bool $header 149 * @param string $method 150 * @return mixed 151 */ 152 private function curl($url, $data, $header = false, $method = "POST") 153 { 154 $ch = curl_init($url); 155 curl_setopt($ch, CURLOPT_URL, $url); 156 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 157 if ($header) { 158 curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 159 } 160 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); 161 if ($data) { 162 curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); 163 } 164 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 165 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 166 $ret = curl_exec($ch); 167 return $ret; 168 } 169 }
以上是关于环信即时通讯---php版的主要内容,如果未能解决你的问题,请参考以下文章
十分钟利用环信WebIM-vue3-Demo,打包上线一个即时通讯项目含音视频通话