Class UserApi


  • public class UserApi
    extends java.lang.Object
    用户API。
    • Constructor Summary

      Constructors 
      Constructor Description
      UserApi​(Context context)  
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      reactor.core.publisher.Mono<EMUser> create​(java.lang.String username, java.lang.String password)
      创建用户。
      reactor.core.publisher.Mono<java.util.List<EMUser>> create​(java.util.List<EMCreateUser> createUsers)
      批量创建用户。
      reactor.core.publisher.Mono<java.lang.Void> delete​(java.lang.String username)
      删除用户。
      reactor.core.publisher.Flux<java.lang.String> deleteAll()
      删除全部用户。
      reactor.core.publisher.Mono<java.lang.Void> forceLogoutAllDevices​(java.lang.String username)
      强制指定用户所有设备下线。
      reactor.core.publisher.Mono<java.lang.Void> forceLogoutOneDevice​(java.lang.String username, java.lang.String resource)
      强制指定用户指定设备下线。
      reactor.core.publisher.Mono<EMUser> get​(java.lang.String username)
      获取用户详情。
      reactor.core.publisher.Mono<Token> getToken​(java.lang.String username, java.lang.String password)
      reactor.core.publisher.Mono<java.lang.Boolean> isUserOnline​(java.lang.String username)
      获取用户在线状态。
      reactor.core.publisher.Mono<java.util.List<EMUserStatus>> isUsersOnline​(java.util.List<java.lang.String> usernames)
      批量获取用户在线状态
      reactor.core.publisher.Flux<java.lang.String> listAllUsers()
      获取全部用户。
      reactor.core.publisher.Mono<EMPage<java.lang.String>> listUsers​(int limit, java.lang.String cursor)
      分页获取用户列表。
      reactor.core.publisher.Mono<java.lang.Void> updateUserPassword​(java.lang.String username, java.lang.String password)
      修改用户密码。
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • UserApi

        public UserApi​(Context context)
    • Method Detail

      • create

        public reactor.core.publisher.Mono<EMUser> create​(java.lang.String username,
                                                          java.lang.String password)
        创建用户。

        Server SDK 对创建的用户名有自己的限制,如果不想使用该限制,请查看此文档: 用户名限制

        API使用示例:

         
         EMService service;
         try {
             EMUser user = service.user().create("username", "password").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        username - 用户名,可以包含小写字母、数字、减号,有效长度1至32个字节
        password - 密码,可以包含字母、数字、特殊符号(~!@#$%^&*-_=+<>;:,./?),有效长度1至32字节
        Returns:
        EMUser
        See Also:
        注册用户
      • create

        public reactor.core.publisher.Mono<java.util.List<EMUser>> create​(java.util.List<EMCreateUser> createUsers)
        批量创建用户。

        Server SDK 对创建的用户名有自己的限制,如果不想使用该限制,请查看此文档: 用户名限制

        API使用示例:

         
         EMService service;
         try {
             List<EMCreateUser> createUsers = new ArrayList<>();
             EMCreateUser createUser1 = new EMCreateUser("user1", "123456");
             EMCreateUser createUser2 = new EMCreateUser("user2", "123456");
             createUsers.add(createUser1);
             createUsers.add(createUser2);
        
             List<EMUser> users = service.user().create(createUsers).block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        createUsers - 需要创建用户的列表,EMCreateUser中包含用户名以及密码,用户名可以包含小写字母、数字、减号,有效长度1至32个字节 密码,可以包含字母、数字、特殊符号(~!@#$%^&*-_=+<>;:,./?),有效长度1至32字节
        Returns:
        EMUser
        See Also:
        批量注册用户
      • delete

        public reactor.core.publisher.Mono<java.lang.Void> delete​(java.lang.String username)
        删除用户。

        API使用示例:

         
         EMService service;
         try {
             service.user().delete("username").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        username - 要删除的用户的用户名
        Returns:
        成功或失败
        See Also:
        删除用户
      • listAllUsers

        public reactor.core.publisher.Flux<java.lang.String> listAllUsers()
        获取全部用户。

        API使用示例:

         
         EMService service;
         try {
             List<String> users = service.user().listAllUsers().collectList().block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Returns:
        用户名或错误
        See Also:
        获取用户列表
      • listUsers

        public reactor.core.publisher.Mono<EMPage<java.lang.String>> listUsers​(int limit,
                                                                               java.lang.String cursor)
        分页获取用户列表。

        API使用示例:

         
         EMService service;
         EMPage<String> page = null;
         try {
             page = service.user().listUsers(10, null).block();
             List<String> users = page.getValues();
             System.out.println("用户列表:" + users);
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
        
         // ... do something with the users ...
         if (page != null) {
              String cursor = page.getCursor();
              // cursor == null indicates the end of the list
              while (cursor != null) {
                  try {
                      page = service.user().listUsers(10, cursor).block();
                      System.out.println("用户列表:" + page.getValues());
                      // ... do something to the users ...
                      cursor = page.getCursor();
                  } catch (EMException e) {
                      e.getErrorCode();
                      e.getMessage();
                  }
              }
         }
         
        Parameters:
        limit - 返回多少用户
        cursor - 开始位置
        Returns:
        获取用户响应或错误
        See Also:
        获取用户列表, EMPage
      • deleteAll

        public reactor.core.publisher.Flux<java.lang.String> deleteAll()
        删除全部用户。

        请谨慎使用。

        API使用示例:

         
         EMService service;
         try {
             List<String> users = service.user().deleteAll().collectList().block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Returns:
        删除的每个用户名或错误
        See Also:
        删除全部用户
      • get

        public reactor.core.publisher.Mono<EMUser> get​(java.lang.String username)
        获取用户详情。

        API使用示例:

         
         EMService service;
         try {
             EMUser user = service.user().get("username").block();
             String uuid = user.getUuid();
             String username = user.getUsername();
             Boolean canLogin = user.getCanLogin();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        username - 用户名
        Returns:
        A Mono emits EMUser on success.
        See Also:
        获取用户详情
      • updateUserPassword

        public reactor.core.publisher.Mono<java.lang.Void> updateUserPassword​(java.lang.String username,
                                                                              java.lang.String password)
        修改用户密码。

        API使用示例:

         
         EMService service;
         try {
             service.user().updateUserPassword("username", "password").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        username - 要修改的用户的用户名
        password - 新密码
        Returns:
        成功或错误
        See Also:
        修改用户密码
      • forceLogoutAllDevices

        public reactor.core.publisher.Mono<java.lang.Void> forceLogoutAllDevices​(java.lang.String username)
        强制指定用户所有设备下线。

        API使用示例:

         
         EMService service;
         try {
             service.user().forceLogoutAllDevices("username").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        username - 要强制下线的用户的用户名
        Returns:
        成功或错误
        See Also:
        强制下线
      • forceLogoutOneDevice

        public reactor.core.publisher.Mono<java.lang.Void> forceLogoutOneDevice​(java.lang.String username,
                                                                                java.lang.String resource)
        强制指定用户指定设备下线。

        TODO: 增加查询用户在线设备id的API API使用示例:

         
         EMService service;
         try {
             service.user().forceLogoutOneDevice("username", "resource").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        username - 要强制下线的用户的用户名
        resource - 要强制下线的设备id,获取设备id的方法待补充
        Returns:
        成功或错误
        See Also:
        强制下线
      • isUserOnline

        public reactor.core.publisher.Mono<java.lang.Boolean> isUserOnline​(java.lang.String username)
        获取用户在线状态。

        API使用示例:

         
         EMService service;
         try {
             Boolean isOnline = service.user().isUserOnline("username").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        username - 要查询的用户的用户名
        Returns:
        是否在线或错误
        See Also:
        获取用户在线状态
      • isUsersOnline

        public reactor.core.publisher.Mono<java.util.List<EMUserStatus>> isUsersOnline​(java.util.List<java.lang.String> usernames)
        批量获取用户在线状态

        API使用示例:

         
         EMService service;
         List<String> users = new ArrayList<>();
         users.add("user1");
         users.add("user2");
        
         try {
             List<EMUserStatus> userStatuses = service.user().isUsersOnline(users).block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        usernames - 需要查询状态的用户名
        Returns:
        是否在线或错误
        See Also:
        批量获取用户在线状态
      • getToken

        @Deprecated
        public reactor.core.publisher.Mono<Token> getToken​(java.lang.String username,
                                                           java.lang.String password)
        获取用户token。

        API使用示例:

         
         EMService service;
         try {
             Token token = service.user().getToken("u1", "123").block();
             String userToken = token.getValue();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        username - 要获取token的用户名
        password - 要获取token的用户名密码
        Returns:
        返回token或失败