package com.sinata.rest.core.easemob;
|
|
import com.alibaba.fastjson.JSONObject;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
/**
|
* 环信的参数
|
*
|
* @author: KingKong
|
* @create: 2018-09-12 16:26
|
**/
|
public class EasemobApi {
|
|
// 企业名
|
private static String ORG_NAME = "1171210115148902";
|
// app名
|
private static String APP_NAME = "zhonglb";
|
|
private static Logger log = LoggerFactory.getLogger(EasemobApi.class);
|
|
/**
|
* 注册环信用户的url
|
*/
|
public static String registerUrl = "https://a1.easemob.com/" + ORG_NAME + "/" + APP_NAME + "/users";
|
/**
|
* 所有的用户环信密码
|
*/
|
public static String password = "meiyaPwd";
|
|
public static String clientId = "YXA6zSSPNggzQvKhIJCjyQEyPA";
|
public static String clientSecret = "YXA6ShEvDr2cdpxVnLRBwHRKp-gDkUg";
|
|
/**
|
* 创建聊天室的url
|
*/
|
public static String chatroomsUrl = "https://a1.easemob.com/" + ORG_NAME + "/" + APP_NAME + "/chatrooms";
|
|
/**
|
* 获取token
|
*/
|
public static String tokenUrl = "https://a1.easemob.com/" + ORG_NAME + "/" + APP_NAME + "/token";
|
|
/**
|
* 移除聊天室管理员/{org_name}/{app_name}/chatrooms/{chatroomid}/users/{username1},{username2}
|
*/
|
public static String removeChatUrl = "https://a1.easemob.com/" + ORG_NAME + "/" + APP_NAME + "/chatrooms/%s/users/%s";
|
/**
|
* 删除聊天室/{org_name}/{app_name}/chatrooms/{chatroom_id}
|
*/
|
public static String removeChatRoomUrl = "https://a1.easemob.com/" + ORG_NAME + "/" + APP_NAME + "/chatrooms/%s";
|
|
/**
|
* 发送聊天室透传/{org_name}/{app_name}/messages
|
*/
|
public static String touMsgUrl = "https://a1.easemob.com/" + ORG_NAME + "/" + APP_NAME + "/messages";
|
|
/**
|
* 获取token
|
* {“grant_type”: “client_credentials”,”client_id”: “{APP的client_id}”,”client_secret”: “{APP的client_secret}”}
|
*
|
* @return
|
*/
|
public static String getToken() {
|
Map<String, Object> userInfoMap = new HashMap<>(2);
|
userInfoMap.put("grant_type", "client_credentials");
|
userInfoMap.put("client_id", clientId);
|
userInfoMap.put("client_secret", clientSecret);
|
JSONObject jsonObject = new JSONObject(userInfoMap);
|
String tokenStr = HttpRequestUtil.post(tokenUrl, jsonObject.toJSONString(), null);
|
JSONObject jsonObject1 = JSONObject.parseObject(tokenStr);
|
if (jsonObject1.containsKey("access_token")) {
|
return jsonObject1.getString("access_token");
|
}
|
return null;
|
}
|
|
|
/**
|
* 移除聊天室成员
|
* <p>
|
* /{org_name}/{app_name}/chatrooms/{chatroomid}/users/{username1},{username2}
|
*
|
* @return
|
*/
|
public static void removeChat(String chatroomid, String username) {
|
String postResult = HttpRequestUtil.delete(String.format(removeChatUrl, chatroomid, username), getToken());
|
JSONObject resultJson = JSONObject.parseObject(postResult);
|
String error = "error_description";
|
if (resultJson.containsKey(error)) {
|
log.error("删除聊天室成员失败:{}", resultJson.get(error));
|
}
|
}
|
|
/**
|
* 删除聊天室
|
*
|
* @param chatroomid
|
*/
|
public static void removeChatRoom(String chatroomid) {
|
String postResult = HttpRequestUtil.delete(String.format(removeChatRoomUrl, chatroomid), getToken());
|
JSONObject resultJson = JSONObject.parseObject(postResult);
|
String error = "error_description";
|
if (resultJson.containsKey(error)) {
|
log.error("删除聊天室失败:{}", resultJson.get(error));
|
}
|
}
|
|
/**
|
* 发送聊天室透传消息
|
*/
|
public static void sendTouMsg(String chatroomid) {
|
Map<String, Object> msgMap = new HashMap<>(2);
|
msgMap.put("type", "cmd");
|
msgMap.put("action", "action1");
|
Map<String, Object> userInfoMap = new HashMap<>(4);
|
userInfoMap.put("target_type", "chatrooms");
|
String[] arr = {chatroomid};
|
userInfoMap.put("target", arr);
|
userInfoMap.put("msg", msgMap);
|
JSONObject jsonObject = new JSONObject(userInfoMap);
|
String postResult = HttpRequestUtil.post(touMsgUrl, jsonObject.toJSONString(), getToken());
|
}
|
}
|