2. 用户 B 通过 ProfileModifySelfUserProfile 函数里的 user_profile_item_add_permission (点击查看详情) 字段设置为加好友不需要验证(kTIMProfileAddPermission_AllowAny)。
3. 用户 A 调用 FriendshipAddFriend 申请添加 B 为好友即可添加成功。添加成功后,按照申请参数 FriendshipAddFriendParam 中 friendship_add_friend_param_friend_type 的设置有两种情况:
如果设置为双向好友 (TIMFriendType.FriendTypeBoth) ,则用户 A 和 B 都会收到 OnAddFriendCallback (点击查看详情) 回调;
如果设置为单向好友(TIMFriendType.FriendTypeSignle),则只有用户 A 收到 OnAddFriendCallback 回调。
第二种:加好友需要通过对方验证
1. 用户 A 和 B 调用 SetOnAddFriendCallback 设置关系链监听。
2. 用户 B 通过 ProfileModifySelfUserProfile 函数里的 user_profile_item_add_permission 字段设置为加好友需要验证(kTIMProfileAddPermission_NeedConfirm)。
3. 用户 A 调用 FriendshipAddFriend 申请添加 B 为好友,接口的成功回调参数中 code 返回 30539,表示需要等待用户 B 的验证。
4. 用户 B 会收到 SetFriendAddRequestCallback 的回调,可以选择接受或者拒绝:
B 调用 FriendshipHandleFriendAddRequest (点击查看详情) 接受好友请求。如果参数接受类型为仅同意加单向好友(TIMFriendResponseAction.ResponseActionAgree)时:
A 会收到 OnAddFriendCallback 回调,说明单向加好友成功。
B 会收到 FriendApplicationListDeletedCallback (点击查看详情) 回调,此时 B 成为 A 的好友,但 A 仍不是 B 的好友。
B 调用 FriendshipHandleFriendAddRequest 接受好友请求,如果参数接受类型为同意加双向好友时(TIMFriendResponseAction.ResponseActionAgreeAndAdd),A 和 B 都会收到 OnAddFriendCallback 回调,说明互相加好友成功。
B 调用 FriendshipHandleFriendAddRequest 传参 TIMFriendResponseAction.ResponseActionReject 拒绝好友请求,双方都会收到 FriendApplicationListDeletedCallback 回调。