fetchMembersAttributes method
~english Gets custom attributes of multiple group members by attribute keys.
Param groupId The group ID.
Param userIds The list of user IDs of group members (max 10 users).
Param keys The list of attribute keys to retrieve.
Returns Member attributes in format: { userId: { key: value } }.
Throws Exception description, see EMError. ~end
~chinese 根据指定的属性 key 获取多个群成员的自定义属性。
Param groupId 群组 ID。
Param userIds 要获取属性的群成员用户 ID 列表(最多 10 个)。
Param keys 要获取的自定义属性 key 列表。
Return 群成员属性,格式为 { 用户ID: { 属性键值对 } }。
Throws 如果有异常会在这里抛出,包含错误码和错误描述,详见 EMError。 ~end
Implementation
Future<Map<String, Map<String, String>>> fetchMembersAttributes({
required String groupId,
required List<String> userIds,
List<String>? keys,
}) async {
try {
Map req = {'groupId': groupId, 'userIds': userIds};
req.putIfNotNull("keys", keys);
Map result = await Client.instance.groupManager.callNativeMethod(
ChatMethodKeys.fetchMembersAttributesFromGroup, req);
EMError.hasErrorFromResult(result);
var map = result[ChatMethodKeys.fetchMembersAttributesFromGroup];
Map<String, Map<String, String>> ret = {};
if (map is Map) {
for (var element in map.keys) {
if (map[element] is Map) {
Map<String, String> value =
Map<String, String>.from(map[element] ?? {});
ret[element] = value;
}
}
}
return ret;
} catch (e) {
rethrow;
}
}