环信通讯 是一个非常专业的平台,主要是针对语音、音视频、文字聊天的第三方服务平台。提供了很多附加功能!

官网:https://console.easemob.com/index

流程

  • 注册环信账号
  • 创建应用
  • 从应用中获取影响APPKEY、Client ID、ClientSecret、Appname、Orgname
  • 然后就在 ”用户认证“ 创建自己的此应用账号 ,以及其他角色的此应用账号 (包含了 账号、密码、Token)
  • 我们就可以在 “运营服务”

API 文档网站

RestAPI 网站:http://api-docs.easemob.com/

错误码相关文档:https://docs-im.easemob.com/start/450errorcode/10restapierrorcode

REST API接口限流说明

接口描述社区版企业版企业版补充说明
IM用户相关单个或批量注册、获取和删除用户;重置用户密码;修改用户信息;查看用户在线状态单APP调用限10次/秒单APP调用限30次/秒用户ID长度 最多64个字符;批量注册每次最多60个ID
IM好友关系单个或批量添加IM好友;解除好友关系;查看好友信息单APP调用限10次/秒单APP调用限30次/秒用户ID长度 最多64个字符
IM黑名单单个或批量添加/移除黑名单;获取指定用户黑名单单APP调用限10次/秒单APP调用限30次/秒
用户账号封禁对指定用户账号进行封禁/解禁;强制用户下线单APP调用限10次/秒单APP调用限30次/秒
离线消息查询离线消息数和指定离线消息状态单APP调用限10次/秒单APP调用限30次/秒
下载聊天记录下载历史消息文件接口(新)单APP调用限1次/分钟单APP调用限1次/分钟
上传和下载上传/下载图片、语音、文件;下载缩略图单APP调用限10次/秒单APP调用限30次/秒单个连接下载限速500k/s;集群下载调用限300次/秒
发送消息发送文本、图片、语音、视频和透传消息(社区版“每日系统推送消息数”限额为2万条)单APP调用限10次/秒单APP调用限30次/秒消息+扩展字段长度限4k字节
群组相关分页获取群组列表;创建、修改、删除群组;获取群组详情和成员;单个/批量添加或移除群组成员;群主转让;单个/批量添加或移除黑名单单APP调用限10次/秒单APP调用限30次/秒单用户最多加入500个群
聊天室相关创建、修改、删除聊天室;获取聊天室详情和在线用户列表;单个/批量加入或退出聊天室单APP调用限10次/秒单APP调用限30次/秒单用户最多加入500个聊天室

Java代码

需要的Maven依赖

        <!-- Jsoup -->
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.12.1</version>
        </dependency>
        <!-- Hutool 工具包 -->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.2</version>
        </dependency>
        <!-- fastjson可以将java对象与json格式之间相互转化 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.55</version>
        </dependency>

代码Demo如下

import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.junit.Test;

import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;

public class 环信API{
    @Test

    将一个用户 添加至该用户的黑名单中
    public void BlackUser() {
        // 请求地址,注意每个Api都不一样
        String url = "http://a1.easemob.com/1106210706153736/demo/users/18305603659/blocks/users";
        // 按照官网的格式处理数据
        Map<String, String[]> map = new HashMap<>();
        String[] add = {"740969606"};
        map.put("usernames", add);
        String data = JSON.toJSONString(map);
        // 创建HttpRequest请求对象
        HttpRequest request = HttpUtil.createPost(url);
        // 发送请求 链式编程 追加请求头、请求体
        HttpResponse response = request
                .header("Authorization", "Bearer YWMtxKG3JN7JEeu9Bq1YQAamtKnzh64c3EnVtKG0LLd7Cc3rkxoQ3f4R65O7k3_2NjRRAwMAAAF6fsNodQBPGgC4qxiVN7-C_jKvbIF_sQpfkIUrq2Nk6dbEOUQkyoCzdw")
                .body(data.getBytes(StandardCharsets.UTF_8))
                .execute();
        //System.out.println("响应结果是:" + response);                  // 输出响应结果
        //System.out.println("Http 版本是:" + response.httpVersion());
        //System.out.println("状态码:" + response.getStatus());
        // 解析响应体
        Document parse = Jsoup.parse(response.body());
        System.out.println(parse);
        //System.out.println("响应体是:" + body);
    }

    
    // 处理数据 将数据转为指定格式
    @Test
    public void maptest() {
        Map<String, String[]> map = new HashMap<>();
        String[] add = {"32795859", "64401694"};
        map.put("usernames", add);
        String s = JSON.toJSONString(map);
        System.out.println(s);
    }
}

一般来说 我们只需要存储用户的环信ID 即可满足大部分需求。