followUser
接口来关注指定的用户。// 关注用户V2TimValueCallback<List<V2TimFollowOperationResult>> followResults = await friendshipManager.followUser(userIDList: ['user1']);if (followResults.code == 0) {// 关注成功followResults.data?.forEach((element) {element?.userID; // 被操作的用户 IDelement?.resultCode; // 操作的错误码element.resultInfo; // 操作结果描述});}
unfollowUser
接口来取消关注指定的用户。// 取消关注用户V2TimValueCallback<List<V2TimFollowOperationResult>> unfollowResults = await friendshipManager.unFollowUser(userIDList: ['user1']);if (unfollowResults.code == 0) {// 取消关注成功unfollowResults.data?.forEach((element) {element?.userID; // 被操作的用户 IDelement?.resultCode; // 操作的错误码element?.resultInfo; // 操作结果描述});}
getMyFollowingList
接口来拉取已经关注的用户列表。// 获取自己的关注列表V2TimValueCallback<V2TimUserInfoResult> userInfoListRes = await friendshipManager.getMyFollowingList(nextCursor: "");if (userInfoListRes.code == 0) {// 获取成功userInfoListRes.data?.nextCursor; // 分页拉取的游标,首次拉取为 "",回调成功如果 nextCursor 不为 "",可以传入该值再次拉取,直至 nextCursor 返回为 "",表示全部拉取完成。userInfoListRes.data?.userFullInfoList?.forEach((element) {element?.userID; // 用户 IDelement?.nickName; // 用户昵称element?.faceUrl; // 用户头像 urlelement?.selfSignature; // 用户签名element?.gender; // 用户性别element?.allowType; // 用户的好友验证方式element?.customInfo; // 用户自定义信息element?.role; // 用户角色element?.level; // 用户等级element?.birthday; // 用户生日});}
nextCursor
参数填写为 ""
, 回调成功后如果返回的 nextCursor
不为 ""
,可以传入该值再次拉取,直至 nextCursor
返回为 ""
,表示全部拉取完成。getMyFollowersList
接口来拉取自己的粉丝用户列表。// 获取自己的关注列表V2TimValueCallback<V2TimUserInfoResult> userInfoListRes = await friendshipManager.getMyFollowersList
(nextCursor: "");if (userInfoListRes.code == 0) {// 获取成功userInfoListRes.data?.nextCursor; // 分页拉取的游标,首次拉取为 "",回调成功如果 nextCursor 不为 "",可以传入该值再次拉取,直至 nextCursor 返回为 "",表示全部拉取完成。userInfoListRes.data?.userFullInfoList?.forEach((element) {element?.userID; // 用户 IDelement?.nickName; // 用户昵称element?.faceUrl; // 用户头像 urlelement?.selfSignature; // 用户签名element?.gender; // 用户性别element?.allowType; // 用户的好友验证方式element?.customInfo; // 用户自定义信息element?.role; // 用户角色element?.level; // 用户等级element?.birthday; // 用户生日});}
nextCursor
参数填写为 ""
, 回调成功后如果返回的 nextCursor
不为 ""
,可以传入该值再次拉取,直至 nextCursor
返回为 ""
,表示全部拉取完成。getMutualFollowersList
接口来拉取与自己互相关注的用户列表(互相关注的用户都可以在彼此的关注用户列表和粉丝用户列表中找到对方)。// 获取自己的关注列表V2TimValueCallback<V2TimUserInfoResult> userInfoListRes = await friendshipManager.getMutualFollowersList(nextCursor: "");if (userInfoListRes.code == 0) {// 获取成功userInfoListRes.data?.nextCursor; // 分页拉取的游标,首次拉取为 "",回调成功如果 nextCursor 不为 "",可以传入该值再次拉取,直至 nextCursor 返回为 "",表示全部拉取完成。userInfoListRes.data?.userFullInfoList?.forEach((element) {element?.userID; // 用户 IDelement?.nickName; // 用户昵称element?.faceUrl; // 用户头像 urlelement?.selfSignature; // 用户签名element?.gender; // 用户性别element?.allowType; // 用户的好友验证方式element?.customInfo; // 用户自定义信息element?.role; // 用户角色element?.level; // 用户等级element?.birthday; // 用户生日});}
nextCursor
参数填写为 ""
, 回调成功后如果返回的 nextCursor
不为 ""
,可以传入该值再次拉取,直至 nextCursor
返回为 ""
,表示全部拉取完成。getUserFollowInfo
接口来获取指定用户的关注/粉丝/互关用户的数量信息 。// 获取用户的关注/粉丝/互关用户数量V2TimValueCallback<List<V2TimFollowInfo>> userFollowInfoListRes = await friendshipManager.getUserFollowInfo(userIDList: ['user1']);if (userFollowInfoListRes.code == 0) {// 获取操作成功userFollowInfoListRes.data?.forEach((element) {element?.resultCode; // 结果码,0 表示本条记录获取成功,非 0 表示失败element?.resultInfo; // 结果描述信息element?.userID; // 用户 IDelement?.followingCount; // 该用户的关注数量element?.followersCount; // 该用户的粉丝数量element?.mutualFollowersCount; // 该用户的互关数量});}
checkFollowType
接口用来检查自己与指定用户的关注关系。V2TimFollowTypeCheckResult
的 followType
字段来获取自己与该用户的关系:V2TimFollowTypeCheckResult.followType | 与自己的关系 |
V2TIM_FOLLOW_TYPE_NONE = 0 | 无任何关系 |
V2TIM_FOLLOW_TYPE_IN_MY_FOLLOWING_LIST = 1 | 对方仅在我的关注列表中 |
V2TIM_FOLLOW_TYPE_IN_MY_FOLLOWERS_LIST = 2 | 对方仅在我的粉丝列表中 |
V2TIM_FOLLOW_TYPE_IN_BOTH_FOLLOWERS_LIST = 3 | 对方与我互相关注(对方既在我的关注列表,也在我的粉丝列表) |
// 检查与特定用户的关注关系V2TimValueCallback<List<V2TimFollowTypeCheckResult>> followTypeCheckRes = await friendshipManager.checkFollowType(userIDList: ['user1']);if (followTypeCheckRes.code == 0) {// 获取操作成功followTypeCheckRes.data?.forEach((element) {element?.resultCode; // 结果码,0 表示本条记录获取成功,非 0 表示失败element?.resultInfo; // 结果描述信息element?.userID; // 用户 IDelement?.followType; // 关注类型,0:无任何关系,1:对方仅在我的关注列表,2:对方仅在我的粉丝列表,3:互相关注});}
列表变更通知 | 说明 |
关注列表变更通知 onMyFollowingListChanged | 当通知中的 isAdd 为 true 时,表示列表新增用户的通知,此时会返回完整的用户资料当通知中的 isAdd 为 false 时,表示列表删除用户的通知,此时返回的用户资料中仅有用户 ID |
粉丝列表变更通知 onMyFollowersListChanged | |
互关列表变更通知 onMutualFollowersListChanged | |
addFriendListener
添加关系链事件监听器,之后才能收到上述相关事件的通知。Alice
和 Bob
,这两个用户相互关注过程中,相关列表变更通知和关系变更如下:事件 | Alice | Bob | ||
| 收到的通知 | 与 Bob 的关系 | 收到的通知 | 与 Alice 的关系 |
Alice 关注 Bob | ||||
Bob 关注 Alice |
Alice
和 Bob
, 这两个用户相互取消关注过程中,相关列表变更通知和关系变更如下:事件 | Alice | Bob | ||
| 收到的通知 | 与 Bob 的关系 | 收到的通知 | 与 Alice 的关系 |
Alice 取消关注 Bob | ||||
Bob 取消关注 Alice |
// 设置关系链监听器V2TimFriendshipListener listener = V2TimFriendshipListener(OnMyFollowingListChanged: (List<V2TimUserFullInfo> userInfoList, bool isAdd) async {if (isAdd) {// 关注列表新增用户的通知} else {// 关注列表删除用户的通知}},OnMyFollowersListChanged: (List<V2TimUserFullInfo> userInfoList, bool isAdd) async {if (isAdd) {// 粉丝列表新增用户的通知} else {// 粉丝列表删除用户的通知}},OnMutualFollowersListChanged: (List<V2TimUserFullInfo> userInfoList, bool isAdd) async {if (isAdd) {// 互关列表新增用户的通知} else {// 互关列表删除用户的通知}}// 其他事件监听...);// 添加关系链监听器TencentImSDKPlugin.v2TIMManager.getFriendshipManager().addFriendListener(listener: listener);// 移除关系链监听器friendshipManager.removeFriendListener(listener : friendshipListener);
本页内容是否解决了您的问题?