mitao
2024-04-30 ab4ea7b8f10c9b66aed9c2ea161a08b25c3851a7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
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());
    }
}