MobIM-API说明

简介:

一、MobIM类API说明

  1. 获取当前用户信息
/**
 获取当前用户信息
 
 @return 当前用户
 */
+ (MIMUser * _Nullable)getCurrentUser;
  1. 获取用户管理者对象
/**
 获取用户管理对象
 
 @return 用户管理对象
 */
+ (MIMUserManager *_Nonnull)getUserManager;
  1. 获取聊天管理者对象
/**
 获取聊天管理对象
 
 @return 聊天管理对象
 */
+ (MIMChatManager *_Nonnull)getChatManager;
  1. 获取群组管理者对象
/**
 获取群组管理对象
 
 @return 群组管理对象
 */
+ (MIMGroupManager *_Nonnull)getGroupManager;
  1. 相关连接监听
/**
 正在连接服务器
 
 @param connectingHandler 进行连接时回调
 */
+ (void)onConnecting:(void (^_Nullable)(MIMUser * _Nonnull currentUser))connectingHandler;
 
/**
 连接服务器成功
 
 @param connectedHandler 连接成功时回调
 */
+ (void)onConnected:(void (^_Nullable)(MIMUser * _Nonnull currentUser))connectedHandler;
 
/**
 断开连接
 
 @param disconnectedHandler 断开连接时回调
 */
+ (void)onDisConnected:(void (^_Nullable)(MIMError * _Nullable error))disconnectedHandler;
 

二、用户管理类(MIMUserManager)

  1. 获取本地提醒号列表
/**
 获取本地提醒号列表
 
 @return 提醒号列表
 */
- (NSArray<MIMUser *> *)getLocalNoticers;
 
  1. 获取用户名片,个人名片主要用于免打扰功能
/**
 获取用户名片
 
 @param userId 用户id
 @return 名片
 */
- (MIMVCard *)getVCardWithUserId:(NSString *)userId;
 
  1. 设置用户是否免打扰
/**
 设置用户是否免打扰
 
 @param userId 用户id
 @param isDisturb 是否免打扰
 @return 是否设置成功
 */
- (BOOL)setUserToDisturbWithUserId:(NSString *)userId isDisturb:(BOOL)isDisturb;
 
  1. 添加、删除黑名单
/**
 添加到黑名单
 
 @param userId 要添加的人的appUserId
 @param resultHandler 回调,添加成功则返回被添加到黑名单的用户信息
 */
- (void)addToBlackListWithUserId:(NSString *)userId resultHandler:(void (^)(MIMUser *user, MIMError *error))resultHandler;
 
/**
 删除黑名单
 
 @param userId 要删除的人的appUserId
 @param resultHandler 回调,删除成功则返回从黑名单中删除的用户信息
 */
- (void)deleteBlackListWithUserId:(NSString *)userId resultHandler:(void (^)(MIMUser *user, MIMError *error))resultHandler;
  1. 获取黑名单列表
/**
 获取当前用户的黑名单列表
 
 @param resultHandler 回调
 */
- (void)getBlackListWithResultHandler:(void (^)(NSArray<MIMUser *> *blackList, MIMError *error))resultHandler;

三、聊天管理类(MIMChatManager)

  1. 从网络获取所有会话列表,获取完成后会缓存到MobIM本地,该接口一般只在首次启动时调用
/**
 获取所有创建过的会话列表
 
 @param completionHandler 完成回调
 */
- (void)getConversationListOnCompletion:(void (^)(NSArray<MIMConversation *> *conversationList, MIMError *error))completionHandler;
  1. 获取本地会话列表,用户app启动时调用展示会话列表页
/**
 获取本地会话列表
 
 @param resultHandler 会话列表回调
 */
- (void)getLocalConversationList:(void (^)(NSArray<MIMConversation *> *conversationList))resultHandler;
 
  1. 监听本地会话列表变更,此接口与上述两个接口配合使用
/**
 监听本地会话列表变更,当本地会话列表变化时通过block回调
 
 @param resultHandler 会话列表变更回调,通过changeType判断变更方式
 */
- (void)onLocalConversationListResultChanged:(void (^)(MIMConversation *changedConversation, NSFetchedResultsChangeType changeType))resultHandler;
  1. 获取总未读消息数并监听变更
/**
 获取当前所有未读消息并监听变更,该方法会直接返回本地消息表中所有未读消息,并且当本地消息表中的未读消息变化时通过block回调实时总的未读消息数
 
 @param resultHandler 未读消息变更回调
 @return 未读消息列表
 */
- (NSInteger)getAllUnreadMessagesOnResultChanged:(void (^)(NSInteger totalUnreadCount))resultHandler;
  1. 发送消息
/**
 发送消息
 
 @param msg 消息对象
 @param completionHandler 发送完成回调
 */
- (void)sendMessage:(MIMMessage *)msg completion:(void (^)(MIMMessage *message, MIMError *error))completionHandler;
  1. 接收消息
/**
 接收消息
 
 @param handlerIdentifier 接收消息回调的唯一标识符,该标识不能为空或空字符串
 @param messageHandler 处理接收到的消息block
 */
- (void)onMessageReceivedWithIdentifier:(NSString *)handlerIdentifier messageHandler:(void (^)(MIMMessage *message))messageHandler;
  1. 移除消息监听,此接口配合上面接收消息的接口使用
/**
 移除接收到消息的监听block
 
 @param handlerIdentifier block标识符
 */
- (void)removeMessageHandlerForIdentifier:(NSString *)handlerIdentifier;
  1. 删除消息
/**
 删除一条或多条消息
 
 @param messages 消息对象集合
 @return 是否删除成功
 */
- (BOOL)deleteMessages:(NSArray<MIMMessage *> *)messages;
 
/**
 根据会话删除某个会话所有消息
 
 @param conversation 会话
 @return 是否删除成功
 */
- (BOOL)deleteAllMessagesInConversation:(MIMConversation *)conversation;
  1. 删除会话
/**
 删除本地会话
 
 @param conversations 要删除的会话集合
 @return 是否删除成功
 */
- (BOOL)deleteLocalConversations:(NSArray<MIMConversation *> *)conversations;
 
/**
 删除本地会话
 
 @param conversationIds 要删除的会话id集合
 @return 是否删除成功
 */
- (BOOL)deleteLocalConversationsByIds:(NSArray<NSString *> *)conversationIds;
  1. 更新消息状态
/**
 更新Message为已读状态
 
 @param message 消息
 @return 是否更新成功
 */
- (BOOL)updateMessageToReaded:(MIMMessage *)message;
 
/**
 根据Conversation更新所有Message为已读状态
 
 @param conversation 会话
 @return 是否更新成功
 */
- (BOOL)updateMessagesToReadedInConversation:(MIMConversation *)conversation;
 
/**
 更新语音消息为已听取状态
 
 @param aVoiceMessage 语音消息
 @return 是否更新成功
 */
- (BOOL)updateVoiceMessageToListened:(MIMMessage *)aVoiceMessage;
 
/**
 更新附件消息下载状态
 
 @param newStatus 新下载状态
 @param message 附件消息
 @return 是否更新成功
 */
- (BOOL)updateAttachDownloadStatus:(MIMDownloadStatus)newStatus withMessage:(MIMMessage *)message;
  1. 查询消息
/**
 根据对方id查询两个人单聊的所有本地消息
 
 @param otherId 对方AppUid
 @param lastMessage 最后一条消息
 @param pageSize 每次查询多少条,若传小于等于0时,默认每次查询10条,若传大于等于50时,默认只查50条
 @return 消息列表
 */
- (NSArray<MIMMessage *> *)fetchSingleChatMessagesByOtherId:(NSString *)otherId
                                                lastMessage:(MIMMessage *)lastMessage
                                                   pageSize:(NSInteger)pageSize;
 
/**
 根据群组id查询群组会话的所有本地消息
 
 @param groupId 群组id
 @param lastMessage 最后一条消息
 @param pageSize 每次查询多少条,若传小于等于0时,默认每次查询10条,若传大于等于50时,默认只查50条
 @return 消息列表
 */
- (NSArray<MIMMessage *> *)fetchGroupChatMessagesByGroupId:(NSString *)groupId
                                                lastMessage:(MIMMessage *)lastMessage
                                                   pageSize:(NSInteger)pageSize;
 
 
/**
 根据会话ID查询该会话的最后一条消息
 
 @param conversationId 会话id
 @return 该会话的最后一条消息
 */
- (MIMMessage*)fetchLastMessageByConversationId:(NSString *)conversationId;
 
/**
 根据会话ID查询该会话所有消息
 
 @param conversationId 会话id
 @param lastMessage 最后一条消息
 @param pageSize 每次查询多少条,若传小于等于0时,默认每次查询10条,若传大于等于50时,默认只查50条
 @return 消息列表
 */
- (NSArray<MIMMessage *> *)fetchAllMessagesByConversationId:(NSString *)conversationId
                                                lastMessage:(MIMMessage *)lastMessage
                                                   pageSize:(NSInteger)pageSize;

四、群组管理类(MIMGroupManager)

  1. 创建群组
/**
 创建群组
 
 @param groupName 群组名称
 @param groupDesc 群组简介
 @param groupNoti 群组公告
 @param groupMembers 群成员
 @param resultHandler 回调处理
 */
- (void)createGroupWithGroupName:(NSString *)groupName
                       groupDesc:(NSString *)groupDesc
                       groupNoti:(NSString *)groupNoti
                    groupMembers:(NSArray<NSString *> *)groupMembers
                   resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;
  1. 修改群信息
/**
 修改群名称
 
 @param groupName 群名称
 @param groupId 群id
 @param resultHandler 回调
 */
- (void)updateGroupName:(NSString *)groupName
            withGroupId:(NSString *)groupId
          resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;
 
/**
 修改群简介
 
 @param groupDesc 群简介
 @param groupId 群id
 @param resultHandler 回调
 */
- (void)updateGroupDesc:(NSString *)groupDesc
            withGroupId:(NSString *)groupId
          resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;
 
/**
 修改群公告
 
 @param groupNoti 群公告
 @param groupId 群id
 @param resultHandler 回调
 */
- (void)updateGroupNotice:(NSString *)groupNoti
              withGroupId:(NSString *)groupId
            resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;
  1. 修改群昵称
/**
 修改群昵称
 
 @param nickname 要修改的昵称
 @param groupId 群组ID
 @param resultHandler 回调处理
 */
- (void)updateGroupNickname:(NSString *)nickname
                    inGroup:(NSString *)groupId
              resultHandler:(void (^)(MIMVCard *card, MIMError *error))resultHandler;
  1. 增加、删除群成员
/**
 增加群成员
 
 @param members 被添加人的id集合
 @param groupId 要添加到的群组ID
 @param resultHandler 回调处理
 */
- (void)addGroupMembers:(NSArray<NSString *> *)members
                toGroup:(NSString *)groupId
          resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;
 
/**
 删除群成员
 
 @param members 要删除的群成员MobUserId集合
 @param groupId 群组id
 @param resultHandler 回调处理
 */
- (void)deleteGroupMembers:(NSArray<NSString *> *)members
                   inGroup:(NSString *)groupId
             resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;
  1. 退出群组
/**
 退出群组
 
 @param groupId 要退出的群组ID
 @param resultHandler 回调处理
 */
- (void)exitGroupWithGroupId:(NSString *)groupId resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;
  1. 转让群组
/**
 转让群组
 
 @param groupId 要转让的群组ID
 @param toId 被转让人(群成员)的appUid
 @param resultHandler 回调处理
 */
- (void)transferGroup:(NSString *)groupId
                   to:(NSString *)toId
        resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;
  1. 获取群组信息
/**
 获取群组信息
 
 @param options 选项,可以选择群组信息,群成员列表,或者群信息+群成员
 @param groupId 群组ID
 @param resultHandler 回调处理
 */
- (void)getGroupInfoWithGroupId:(NSString *)groupId
                        options:(MIMGroupInfoOption)options
                  resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;
  1. 加入群组
/**
 加入群组
 
 @param groupId 群组id
 @param resultHandler 回调处理
 */
- (void)joinToGroup:(NSString *)groupId resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;
  1. 获取当前用户的群组列表
/**
 获取当前用户的群组列表
 
 @param resultHandler 回调
 */
- (void)getUserGroupsWithResultHandler:(void (^)(NSArray<MIMGroup *> *groupList, MIMError *error))resultHandler;
  1. 查找群组
/**
 查找群组
 
 @param groupId 群组id
 @param resultHandler 回调
 */
- (void)findGroupBy:(NSString *)groupId resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;

五、错误码说明
错误信息都有错误码 errorCode 和错误描述 errorDescription,根据错误描述了解具体错误情况,错误码详情请参阅:MIMErrorCode.h

/**
 错误码
 */
@property (nonatomic, assign) MIMErrorCode errorCode;
 
/**
 错误描述
 */
@property (nonatomic, copy) NSString *errorDescription;
目录
相关文章
|
2月前
|
机器人 API Python
智能对话机器人(通义版)会话接口API使用Quick Start
本文主要演示了如何使用python脚本快速调用智能对话机器人API接口,在参数获取的部分给出了具体的获取位置截图,这部分容易出错,第一次使用务必仔细参考接入参数获取的位置。
136 1
|
1天前
|
人工智能 自然语言处理 PyTorch
Text2Video Huggingface Pipeline 文生视频接口和文生视频论文API
文生视频是AI领域热点,很多文生视频的大模型都是基于 Huggingface的 diffusers的text to video的pipeline来开发。国内外也有非常多的优秀产品如Runway AI、Pika AI 、可灵King AI、通义千问、智谱的文生视频模型等等。为了方便调用,这篇博客也尝试了使用 PyPI的text2video的python库的Wrapper类进行调用,下面会给大家介绍一下Huggingface Text to Video Pipeline的调用方式以及使用通用的text2video的python库调用方式。
|
1天前
|
JSON JavaScript API
(API接口系列)商品详情数据封装接口json数据格式分析
在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦!
|
21天前
|
安全 API 开发者
Web 开发新风尚!Python RESTful API 设计与实现,让你的接口更懂开发者心!
在当前的Web开发中,Python因能构建高效简洁的RESTful API而备受青睐,大大提升了开发效率和用户体验。本文将介绍RESTful API的基本原则及其在Python中的实现方法。以Flask为例,演示了如何通过不同的HTTP方法(如GET、POST、PUT、DELETE)来创建、读取、更新和删除用户信息。此示例还包括了基本的路由设置及操作,为开发者提供了清晰的API交互指南。
80 6
|
2月前
|
存储 JSON API
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
——在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦! 淘宝API接口(如淘宝开放平台提供的API)允许开发者获取淘宝商品的各种信息,包括商品详情。然而,需要注意的是,直接访问淘宝的商品数据API通常需要商家身份或开发者权限,并且需要遵循淘宝的API使用协议。
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
|
4天前
|
API 数据安全/隐私保护 开发者
淘宝 API:关键词搜商品列表接口,助力商家按价格销量排序分析数据
此接口用于通过关键词搜索淘宝商品列表。首先需在淘宝开放平台注册并创建应用获取API权限,之后利用应用密钥和访问令牌调用接口。请求参数包括关键词、页码、每页数量、排序方式及价格区间等。返回结果含总商品数量及具体商品详情。使用时需注意签名验证及官方文档更新。
|
2月前
|
SQL 存储 数据处理
|
2月前
|
XML JSON API
RESTful API设计最佳实践:构建高效、可扩展的接口
【8月更文挑战第17天】RESTful API设计是一个涉及多方面因素的复杂过程。通过遵循上述最佳实践,开发者可以构建出更加高效、可扩展、易于维护的API。然而,值得注意的是,最佳实践并非一成不变,随着技术的发展和业务需求的变化,可能需要不断调整和优化API设计。因此,保持对新技术和最佳实践的关注,是成为一名优秀API设计师的关键。
|
2月前
|
监控 API 数据安全/隐私保护
​邮件API触发式接口分析?邮件API接口好评榜
邮件API在企业通信和营销中至关重要,通过自动化邮件发送流程提升效率与客户满意度。本文解析邮件API触发式接口,即基于特定事件(如用户注册、购买产品)自动发送邮件的技术,能显著加快企业响应速度并增强用户体验。推荐市场上的优秀邮件API产品,包括SendGrid、Mailgun、Amazon SES、Postmark及新兴的AOKSend,它们各具特色,如高发送率、详细分析工具、灵活配置、强大的日志功能及用户友好的API接口,帮助企业根据不同需求选择最合适的邮件API解决方案。
|
2月前
|
存储 算法 Oracle
19 Java8概述(Java8概述+lambda表达式+函数式接口+方法引用+Stream+新时间API)
19 Java8概述(Java8概述+lambda表达式+函数式接口+方法引用+Stream+新时间API)
62 8