fetchMembersAttributes method

Future<Map<String, Map<String, String>>> fetchMembersAttributes({
  1. required String groupId,
  2. required List<String> userIds,
  3. List<String>? keys,
})

根据指定的属性 key 获取多个群成员的自定义属性。

Param groupId 群组 ID。 Param userIds 要获取属性的群成员用户 ID 列表(最多 10 个)。 Param keys 要获取的自定义属性 key 列表。

Return 群成员属性,格式为 { 用户ID: { 属性键值对 } }。

Throws 如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

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 platform_interface.Client.instance.groupManager.callNativeMethod(
        ChatMethodKeys.fetchMembersAttributesFromGroup, req);
    ChatError.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;
  }
}