Class MetadataApi


  • public class MetadataApi
    extends java.lang.Object
    用户、群组、聊天室属性API。
    • Constructor Detail

      • MetadataApi

        public MetadataApi​(Context context)
    • Method Detail

      • setMetadataToUser

        public reactor.core.publisher.Mono<java.lang.Void> setMetadataToUser​(java.lang.String username,
                                                                             java.util.Map<java.lang.String,​java.lang.String> metadata)
        设置用户属性

        API使用示例:

         
         EMService service;
         Map<String, String> map = new HashMap<>();
         map.put("nickname", "昵称");
         map.put("avatarurl", "http://www.easemob.com/avatar.png");
         map.put("phone", "159");
        
         try {
             service.metadata().setMetadataToUser("username", map).block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        username - 要被设置用户属性的用户名
        metadata - 要设置的属性
        Returns:
        成功或错误
        See Also:
        设置用户属性
      • getMetadataFromUser

        public reactor.core.publisher.Mono<EMMetadata> getMetadataFromUser​(java.lang.String username)
        获取用户属性

        API使用示例:

         
         EMService service;
        
         try {
             EMMetadata userMetadata = service.metadata().getMetadataFromUser("username").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        username - 要获取的用户名
        Returns:
        返回获取到的用户属性
        See Also:
        获取用户属性
      • getMetadataFromUsers

        public reactor.core.publisher.Mono<EMMetadataBatch> getMetadataFromUsers​(java.util.List<java.lang.String> targets,
                                                                                 java.util.List<java.lang.String> properties)
        批量获取用户属性

        API使用示例:

         
         EMService service;
         List<String> targets = new ArrayList<>();
         targets.add("user1");
         targets.add("user2");
        
         List<String> properties = new ArrayList<>();
         properties.add("nickname");
        
         try {
             EMMetadataBatch metadataBatch = service.metadata().getMetadataFromUsers(targets, properties).block();
             metadataBatch.getData();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        targets - 需要获取用户属性的用户名列表,最多 100 个用户名。
        properties - 属性名列表,查询结果只返回该列表中包含的属性,不在该列表中的属性将被忽略。
        Returns:
        返回获取到的用户属性列表
        See Also:
        批量获取用户属性
      • getUsage

        public reactor.core.publisher.Mono<EMMetadataUsage> getUsage()
        获取app用户属性当前所占空间。

        API使用示例:

         
         EMService service;
        
         try {
             EMMetadataUsage metadataUsage = service.metadata().getUsage().block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Returns:
        返回占用空间大小,单位Bytes
        See Also:
        获取app用户属性总量大小
      • deleteMetadataFromUser

        public reactor.core.publisher.Mono<java.lang.Boolean> deleteMetadataFromUser​(java.lang.String username)
        删除用户属性。

        API使用示例:

         
         EMService service;
        
         try {
             Boolean isSuc = service.metadata().deleteMetadataFromUser("username").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        username - 要被删除用户属性的用户名
        Returns:
        返回删除是否成功的结果
        See Also:
        删除用户属性
      • setChatRoomMetadata

        public reactor.core.publisher.Mono<ChatRoomMetadataSetResponse> setChatRoomMetadata​(java.lang.String operator,
                                                                                            java.lang.String chatroomId,
                                                                                            java.util.Map<java.lang.String,​java.lang.String> metadata,
                                                                                            AutoDelete autoDelete)
        设置聊天室属性

        API使用示例:

         
         EMService service;
         Map<String, String> map = new HashMap<>();
         map.put("nickname", "昵称");
         map.put("avatarurl", "http://www.easemob.com/avatar.png");
         map.put("phone", "159");
        
         try {
             service.metadata().setChatRoomMetadata("username", "roomId", map, AutoDelete.NO_DELETE).block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        operator - 设置聊天室属性的操作人
        chatroomId - 聊天室id
        metadata - 要设置的属性
        autoDelete - 用户退出是否删除属性
        Returns:
        成功或错误
      • setChatRoomMetadataForced

        public reactor.core.publisher.Mono<ChatRoomMetadataSetResponse> setChatRoomMetadataForced​(java.lang.String operator,
                                                                                                  java.lang.String chatroomId,
                                                                                                  java.util.Map<java.lang.String,​java.lang.String> metadata,
                                                                                                  AutoDelete autoDelete)
        强制设置聊天室属性

        API使用示例:

         
         EMService service;
         Map<String, String> map = new HashMap<>();
         map.put("nickname", "昵称");
         map.put("avatarurl", "http://www.easemob.com/avatar.png");
         map.put("phone", "159");
        
         try {
             service.metadata().setChatRoomMetadataToUserForced("username", "roomId", map, AutoDelete.NO_DELETE).block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        chatroomId - 聊天室id
        operator - 强制设置聊天室属性的操作人
        metadata - 要设强制设置的属性
        autoDelete - 用户退出是否删除属性
        Returns:
        成功或错误
      • listChatRoomMetadata

        public reactor.core.publisher.Mono<ChatRoomMetadataGetResponse> listChatRoomMetadata​(java.lang.String chatroomId,
                                                                                             java.util.List<java.lang.String> keys)
        获取聊天室属性

        API使用示例:

         
         EMService service;
         List<String> keys = new ArrayList<>();
         keys.add("nickname");
        
         try {
             service.metadata().listChatRoomMetadata("roomId", keys).block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        chatroomId - 聊天室id
        keys - 要获取的属性key列表
        Returns:
        成功或错误
      • listChatRoomMetadataAll

        public reactor.core.publisher.Mono<ChatRoomMetadataGetResponse> listChatRoomMetadataAll​(java.lang.String chatroomId)
        获取所有的聊天室属性

        API使用示例:

         
         EMService service;
        
         try {
             service.metadata().listChatRoomMetadataAll("roomId").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        chatroomId - 聊天室id
        Returns:
        成功或错误
      • deleteChatRoomMetadata

        public reactor.core.publisher.Mono<ChatRoomMetadataDeleteResponse> deleteChatRoomMetadata​(java.lang.String operator,
                                                                                                  java.lang.String chatroomId,
                                                                                                  java.util.List<java.lang.String> keys)
        删除聊天室属性

        API使用示例:

         
         EMService service;
         List<String> keys = new ArrayList<>();
         keys.add("nickname");
        
         try {
             service.metadata().deleteChatRoomMetadata("operator", "roomId", map, keys).block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        operator - 执行删除的操作人
        chatroomId - 聊天室id
        keys - 要删除的属性key列表
        Returns:
        成功或错误
      • deleteChatRoomMetadataForced

        public reactor.core.publisher.Mono<ChatRoomMetadataDeleteResponse> deleteChatRoomMetadataForced​(java.lang.String chatroomId,
                                                                                                        java.util.List<java.lang.String> keys)
        强制删除聊天室属性

        API使用示例:

         
         EMService service;
         List<String> keys = new ArrayList<>();
         keys.add("nickname");
        
         try {
             service.metadata().deleteChatRoomMetadataForced("roomId", map, keys).block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        chatroomId - 聊天室id
        keys - 要强制删除的属性key列表
        Returns:
        成功或错误
      • setMetadataToChatGroupUser

        public reactor.core.publisher.Mono<java.lang.Void> setMetadataToChatGroupUser​(java.lang.String username,
                                                                                      java.lang.String groupId,
                                                                                      java.util.Map<java.lang.String,​java.lang.String> metadata)
        设置群成员自定义属性

        API使用示例:

         
         EMService service;
         Map<String, String> map = new HashMap<>();
         map.put("nickname", "昵称");
         map.put("avatarurl", "http://www.easemob.com/avatar.png");
         map.put("phone", "159");
        
         try {
             service.metadata().setMetadataToChatGroup("username", "groupId", map).block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        username - 要被设置群组属性的用户名
        groupId - 要被设置群组属性的群组id
        metadata - 要设置的属性
        Returns:
        成功或错误
        See Also:
        设置群成员自定义属性
      • getMetadataFromChatGroupUser

        public reactor.core.publisher.Mono<EMMetadata> getMetadataFromChatGroupUser​(java.lang.String username,
                                                                                    java.lang.String groupId)
        获取单个群成员的所有自定义属性

        API使用示例:

         
         EMService service;
        
         try {
             EMMetadata userMetadata = service.metadata().getMetadataFromChatGroup("username", "groupId").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        username - 要获取的用户名
        groupId - 要获取的群组id
        Returns:
        返回获取到的群组用户属性
        See Also:
        获取单个群成员的所有自定义属性
      • getMetadataFromChatGroupUsers

        public reactor.core.publisher.Mono<EMMetadataBatch> getMetadataFromChatGroupUsers​(java.lang.String groupId,
                                                                                          java.util.List<java.lang.String> targets,
                                                                                          java.util.List<java.lang.String> properties)
        根据属性 key 获取多个群成员的自定义属性

        API使用示例:

         
         EMService service;
         List<String> targets = new ArrayList<>();
         targets.add("user1");
         targets.add("user2");
        
         List<String> properties = new ArrayList<>();
         properties.add("nickname");
        
         try {
             EMMetadataBatch metadataBatch = service.metadata().getMetadataFromUsers("groupId", targets, properties).block();
             metadataBatch.getData();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        groupId - 群组id
        targets - 要获取自定义属性的群成员的用户 ID。一次最多可传 10 个用户 ID。
        properties - 要获取自定义属性的 key 的数组。若该参数设置为空数组或不传,则获取这些群成员的所有自定义属性。
        Returns:
        返回获取到的用户属性列表
        See Also:
        根据属性 key 获取多个群成员的自定义属性