• UIKit
  • SDK
  • 服务端 API
Chat/
SDK/
Flutter/
用户/
SDK
  • 安装即时通信 IM SDK
    • 安装
  • 初始化即时通信 IM SDK
    • 初始化
  • 登录和注销
    • 登录和注销
  • 消息
    • 消息概述
    • 发送消息
    • 接收消息
    • 历史消息
    • 转发消息
    • 修改消息
    • 消息插入
    • 删除消息
    • 清空消息
    • 撤回消息
    • 在线消息
    • 已读回执
    • 查询消息
    • 群 @ 消息
    • 定向群消息
    • 通知免打扰
    • 消息扩展
  • 会话
    • 会话概述
    • 会话列表
    • 获取会话
    • 未读会话数
    • 置顶会话
    • 删除会话
    • 会话草稿
    • 会话组
  • 群组
    • 群组概述
    • 群组管理
    • 群资料
    • 群成员管理
    • 群成员资料
    • 自定义群属性
  • 用户
    • 用户资料
    • 好友管理
    • 好友列表
    • 黑名单
  • 离线推送
    • 离线推送
  • 信令
    • 信令管理
  • 局部搜索
    • 查找消息
    • 查找好友
    • 查找群组
    • 查找群成员
  • 接口参考文档
    • 客户接口
  • 开发指引
  • 控制台指南
    • 创建和升级应用
    • 基本配置
    • 功能配置
    • 账号管理
    • 群组管理
    • 回调配置
  • 产品介绍
    • 消息管理
      • 单聊消息
      • 消息存储
      • 离线推送
      • 群消息
      • 消息格式
    • 账号系统
      • 登陆验证
      • 在线状态管理
    • 群相关
      • 群组系统
      • 群组管理
    • 用户资料和关系链
      • 资料管理
      • 关系链管理
  • 购买指南
    • 计费概述
    • 价格中心
  • 错误码

用户资料

功能描述

用户可以设置和获取个人的昵称、头像、签名等资料信息,也可以获取到陌生人的资料信息。相关方法在核心类 TencentImSDKPlugin.v2TIMManager.getFriendshipManager()中。

关系链事件监听器

您可以调用 addFriendListener (点击查看详情) 添加关系链事件监听器。
当不想再接收关系链事件时,可调用 removeFriendListener (点击查看详情) 移除关系链事件监听器。
注意:
只有预先设置好关系链事件监听器,才能正常接收到下文中的各种事件通知。
示例代码如下:
//设置关系链监听器
V2TimFriendshipListener listener = V2TimFriendshipListener(
onBlackListAdd: (List<V2TimFriendInfo> infoList) async {
//黑名单列表新增用户的回调
//infoList 新增的用户信息列表
},
onBlackListDeleted: (List<String> userList) async {
//黑名单列表删除的回调
//userList 被删除的用户id列表
},
onFriendApplicationListAdded:
(List<V2TimFriendApplication> applicationList) async {
//好友请求数量增加的回调
//applicationList 新增的好友请求信息列表
},
onFriendApplicationListDeleted: (List<String> userIDList) async {
//好友请求数量减少的回调
//减少的好友请求的请求用户id列表
},
onFriendApplicationListRead: () async {
//好友请求已读的回调
},
onFriendInfoChanged: (List<V2TimFriendInfo> infoList) async {
//好友信息改变的回调
//infoList 好友信息改变的好友列表
},
onFriendListAdded: (List<V2TimFriendInfo> users) async {
//好友列表增加人员的回调
//users 新增的好友信息列表
},
onFriendListDeleted: (List<String> userList) async {
//好友列表减少人员的回调
//userList 减少的好友id列表
},
);
TencentImSDKPlugin.v2TIMManager
.getFriendshipManager()
.addFriendListener(listener: listener);//添加关系链监听器
// 移除关系链监听器
friendshipManager.removeFriendListener(listener: frindshipListener);

用户资料管理

查询和修改自己的资料

您可以调用 getUsersInfo (点击查看详情) 接口查询个人资料,其中参数 userIDList 需填入自己的 UserID。
您可以调用 setSelfInfo (点击查看详情) 接口修改个人资料。 资料修改成功后,您会收到 onSelfInfoUpdated (点击查看详情) 回调。
示例代码如下:
// 获取个人资料
V2TimValueCallback<String> self = await TencentImSDKPlugin.v2TIMManager.getLoginUser();
TencentImSDKPlugin.v2TIMManager.getUsersInfo(userIDList: [self.data]);

// 设置个人资料
TencentImSDKPlugin.v2TIMManager.setSelfInfo(userFullInfo: V2TimUserFullInfo(nickName: "",role: 0,faceUrl: ""));


查询非好友用户资料

您可以调用 getUsersInfo (点击查看详情) 接口查询非好友资料,其中参数 userIDList 填入非好友的 UserID 即可。
说明:
不能修改非好友的资料。

查询和修改好友资料

您可以调用 getFriendsInfo (点击查看详情) 接口查询指定的好友资料,从回调信息中通过 V2TIMFriendInfoResultrelation 字段可以得到该用户与自己的关系:
relation
与自己的关系
V2TIM_FRIEND_RELATION_TYPE_NONE
表示不是好友。
V2TIM_FRIEND_RELATION_TYPE_BOTH_WAY
表示互为好友。
V2TIM_FRIEND_RELATION_TYPE_IN_MY_FRIEND_LIST
表示对方在我的好友列表中。
V2TIM_FRIEND_RELATION_TYPE_IN_OTHER_FRIEND_LIST
表示我在对方的好友列表中。
// 获取好友信息
V2TimValueCallback<List<V2TimFriendInfoResult>> friendsInfo = await friendshipManager.getFriendsInfo(userIDList: []);
您可以调用 setFriendInfo (点击查看详情) 接口修改好友备注等资料。
// 设置好友信息
TencentImSDKPlugin.v2TIMManager.setSelfInfo(userFullInfo: V2TimUserFullInfo(nickName: "",role: 0,faceUrl: ""));

常见问题

增强版获取用户资料为什么不是最新的?

增强版 SDK 中用户资料的更新分好友和陌生人两种情况:
好友资料:由于好友资料更新时,后台会主动向 SDK 发送系统通知,因此好友资料可以实时更新。
陌生人资料:陌生人资料更新时,由于没有好友关系,后台无法向 SDK 发送系统通知,因此无法实时更新;为了避免每次获取用户资料都向后台发起网络请求,SDK 增加了缓存逻辑,对同一个用户主动向后台拉取资料的时间间隔为 10 分钟。