"jiguang/jmessage": "~1.1"
composer下载
注意post数据要json_encode,不然数据格式报错,其余的接口看下文档就ok了
文档
http://docs.jiguang.cn/jmessage/server/rest_api_im/#_61
<?php
use think\Db;
use think\Config;
/**
* 保留2位小数,只四舍
* @param type $num
* @return type
*/
function number_format_2($num) {
return sprintf("%.2f", substr(sprintf("%.3f", $num), 0, -1));
}
/**
* 聊天室会员列表
*/
function char_room_user_list( $room_id ){
$url = "https://api.im.jpush.cn/v1/chatroom/".$room_id."/members?start=0&count=100";
$arr = jg_curl( $url );
return $arr;
}
/**
* 极光创建聊天室
*/
function jg_create_room($temp_post_arr) {
$temp_post_arr = json_encode($temp_post_arr);
$push_url = "https://api.im.jpush.cn";
$temp_url = $push_url . "/v1/chatroom/";
$ret_msg = jg_curl($temp_url, $temp_post_arr);
$return_msg = [];
if (isset($ret_msg['chatroom_id'])) {
$return_msg['code'] = 1;
$return_msg['chatroom_id'] = $ret_msg['chatroom_id'];
} else {
$return_msg['code'] = 0;
$return_msg['chatroom_id'] = 0;
}
return $return_msg;
}
/**
* 当前用户的聊天室列表
*/
function user_chat_rooms( $username ) {
$url = "https://api.im.jpush.cn" . "/v1/users/" . $username . "/chatroom";
$ret_msg = jg_curl($url);
return $ret_msg;
}
/**
* 获取聊天室详情
*/
function char_room_detail( $room_arr = [] ) {
$room_arr = json_encode($room_arr);
$url = "https://api.im.jpush.cn" . "/v1/chatroom/batch";
$ret_msg = jg_curl($url, $room_arr);
return $ret_msg;
}
/**
* 极光注册用户
* $user_arr 是二位数组
*/
function jg_register($user_arr) {
$post_arr1 = [];
$post_arr1 = [
[
"username" => "mager",
"password" => "mager",
"nickname" => "mager",
"avatar" => "mager",
],
];
$url = "https://api.im.jpush.cn/v1/users/";
$post_arr = json_encode($user_arr);
$return_arr = jg_curl($url, $post_arr);
return $return_arr;
}
/**
* 极光修改用户密码
*/
function jg_update_pwd($username = '', $new_pwd = '') {
$url = "https://api.im.jpush.cn/v1/users/" . $username . "/password";
$new_pwd_arr = [];
$new_pwd_arr = [
"new_password" => $new_pwd,
];
$post_arr = json_encode($new_pwd_arr);
$return_arr = put_jg_send($url, $post_arr);
return $return_arr;
}
/**
* 极光curl
* @param type $temp_url
* @param type $temp_post_arr
* @return type
*/
function jg_curl($temp_url, $temp_post_arr = []) {
$push_appkey = Config::get("site.push_appkey");
$push_secret = Config::get("site.push_secret");
$arr_header = [];
$arr_header[] = "Content-Type: application/json";
$arr_header[] = "Authorization: Basic " . base64_encode($push_appkey . ":" . $push_secret);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $temp_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if (!empty($arr_header)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $arr_header);
}
if ($temp_post_arr) {
curl_setopt($ch, CURLOPT_POST, 1);
// $temp_post_arr = http_build_query( $temp_post_arr );
curl_setopt($ch, CURLOPT_POSTFIELDS, $temp_post_arr);
}
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$push_ret = curl_exec($ch);
curl_close($ch);
// echo "<pre>";var_dump($push_ret);die;
$push_ret_arr = json_decode($push_ret, true);
return $push_ret_arr;
}
/**
* PUT请求
* @param type $url
* @param type $data
* @return type
*/
function put_jg_send($url, $data) {
$push_appkey = Config::get("site.push_appkey");
$push_secret = Config::get("site.push_secret");
$arr_header = [];
$arr_header[] = "Content-Type: application/json";
$arr_header[] = "Authorization: Basic " . base64_encode($push_appkey . ":" . $push_secret);
$ch = curl_init(); //初始化CURL句柄
curl_setopt($ch, CURLOPT_URL, $url); //设置请求的URL
if (!empty($arr_header)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $arr_header);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //设为TRUE把curl_exec()结果转化为字串,而不是直接输出
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); //设置请求方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //设置提交的字符串
$output = curl_exec($ch);
// echo "<pre>";var_dump($output);die;
curl_close($ch);
return json_decode($output, true);
}
/*
* 极光创建聊天室
* 先引入极光组建
use JMessage\IM\ChatRoom;
use JMessage\JMessage;
*/
function jg_create_room_by_composer() {
$client = new JMessage($this->push_appkey, $this->push_secret);
$room = new ChatRoom($client);
$com_ret = $room->create("测试聊天室", "admin", $members = [], $description = null);
}
?>