好友管理

本文主要介绍 云上曲率即时通讯IM SDK的好友管理功能。

功能描述

好友管理是指用户可以添加、删除好友,对发起和收到的好友请求做处理等功能操作。

云上曲率IM SDK为开发者提供如下群组信息管理内容:

  • 获取好友列表
  • 获取被添加好友请求列表
  • 获取添加别人为好友的请求列表
  • 添加好友
  • 删除好友
  • 检查好友关系
  • 获取好友备注名称
  • 设置好友备注名称

接口说明

好友事件变更通知

好友管理功能中,当出现被添加好友、添加好友同意、添加好友拒绝、好友变更时,会接收到服务端的通知PUSH。

获取好友列表

用户可以使用getFriendList接口获取用户的全部好友。

接口参数说明:

参数 含义 说明
timeout 超时时间 请求的超时时间,单位为秒
代码示例
-(void)getFriendList:(int)timeout
             success:(void(^)(NSArray * _Nullable uidsArray))successCallback
                fail:(IMAnswerFailCallBack)failCallback;

获取被添加好友请求列表

用户可以使用getFriendApplyList接口获取用户被添加好友的全部请求。

接口参数说明:

参数 含义 说明
timeout 超时时间 请求的超时时间,单位为秒
代码示例
-(void)getFriendApplyList:(int)timeout
                  success:(void(^)(NSArray <IMFriendApply *> *))successCallback
                     fail:(IMAnswerFailCallBack)failCallback;

获取发出的添加好友请求列表

用户可以使用getFriendRequestList接口获取用户发出的添加好友的全部请求。

接口参数说明:

参数 含义 说明
timeout 超时时间 请求的超时时间,单位为秒
代码示例
-(void)getFriendRequestList:(int)timeout
                    success:(void(^)(NSArray <IMFriendRequest*> *))successCallback
                     fail:(IMAnswerFailCallBack)failCallback;

添加好友

用户可以使用addFriend接口添加非好友用户为好友。

接口参数说明:

参数 含义 说明
userId 用户ID 请求添加的用户ID
extra 附加信息 根据添加好友方式进行处理,如果是需要验证,此处为验证留言内容
attrs 自定义属性 开发者可以配置用户信息等业务信息
timeout 超时时间 请求的超时时间,单位为秒

其中,extra参数会根据用户信息设置的 “添加好友方式” 来设置。

自由添加好友

添加好友方式“无需验证” 时:

  1. 用户调用 addFriend 直接添加好友。
  2. 添加后,好友双方收到由服务端推送的 好友变更 通知。
验证添加好友

添加好友方式“需要验证” 时:

  1. 用户调用 addFriend 添加好友,并在extra中填写所需验证信息。

  2. 被添加的好友 发起 ackAddFriend回调,并进行处理。

    • ackAddFriend接口参数说明:

    接口参数说明:

    参数 含义 说明
    userId 用户ID 请求添加的用户ID
    agree 是否同意 被添加好友的用户处理是否同意好友请求
    attrs 自定义属性 开发者可以配置用户信息等业务信息
    timeout 超时时间 请求的超时时间,单位为秒
  3. 验证通过,好友添加成功,好友双方收到由服务端推送的 好友变更 通知。

  4. 验证不通过/请求超时,无法添加好友。

注意:添加好友请求只有在一个请求被拒绝或者失效后,才可以再发起同一用户的好友添加请求。请求失效时间默认为 24 小时。

代码示例
-(void)addFriend:(int64_t)userId
           extra:(NSString * _Nullable)extra
           attrs:(NSString * _Nullable)attrs
         timeout:(int)timeout
         success:(void(^)(void))successCallback
            fail:(IMAnswerFailCallBack)failCallback;
-(void)ackAddFriend:(int64_t)userId
              agree:(BOOL)agree
              attrs:(NSString * _Nullable)attrs
            timeout:(int)timeout
            success:(void(^)(void))successCallback
               fail:(IMAnswerFailCallBack)failCallback;

删除好友

用户可以使用deleteFriend接口来删除好友。

接口参数说明:

参数 含义 说明
friendids 好友ID 待删除的好友ID
timeout 超时时间 请求的超时时间,单位为秒

当前默认删除好友位双向删除,即当用户A删除好友用户B后,用户B也默认删除用户A,双方的好友列表中均没有彼此的好友关系,并且无法再从服务端获取好友会话和历史消息。 当好友删除成功后,好友双方均会收到由服务端推送的 好友变更 通知。

注意:如果需要单向删除好友,请联系云上曲率技术人员。

代码示例
-(void)deleteFriends:(NSArray <NSNumber* >* _Nonnull)friendids
             timeout:(int)timeout
             success:(void(^)(void))successCallback
                fail:(IMAnswerFailCallBack)failCallback;