跳到主要内容

开发指南

敏感信息拦截回调

SDK 从 5.1.4 版本开始支持敏感信息拦截回调。

默认情况下,消息发送方无法感知消息是否已被融云审核服务拦截。如果 App 希望在消息因触发审核规则而无法下发时通知消息发送方,可开通使用敏感信息拦截回调服务。

融云的内容审核服务(包括消息敏感词、IM 审核服务、消息回调服务),可能在以下情况下拦截消息:

  • 文本消息内容命中了融云内置的消息敏感词,导致消息不下发给接收方。
  • 文本消息内容命中了您自定义的消息敏感词(屏蔽敏感词),导致消息不下发给接收方。
  • 消息命中了 IM 审核服务,或消息回调服务设置的审核规则,导致消息不下发给接收方。

开通服务

您可以在融云控制台,通过应用配置>IM 服务>免费基础功能>安全,开启含敏感词消息屏蔽状态回调发送端

敏感信息拦截代理委托

在发出的消息被拦截时,SDK 会触发 RCMessageBlockDelegate 的以下方法:

@protocol RCMessageBlockDelegate <NSObject>

/*!
发送消息被拦截的回调方法
@param blockedMessageInfo 被拦截消息的相关信息
*/
- (void)messageDidBlock:(RCBlockedMessageInfo *)blockedMessageInfo;

@end

RCBlockedMessageInfo 里包含了被拦截消息的相关信息:

参数类型说明
typeRCConversationType被拦截消息所在会话的会话类型
targetIdNSString被拦截消息所在的会话 Id
channelIdNSString被拦截消息所在的超级群频道 ID(iOS 端 SDK 从 5.2.4 版本开始支持)
blockedMsgUIdNSString被拦截消息的唯一 Id
blockTypeRCMessageBlockType消息被拦截的原因,详见下方 RCMessageBlockType 说明
extraNSString被拦截消息的附加信息
sentTimelong long被拦截消息的发送时间(Unix 时间戳、毫秒) 。iOS 端 SDK 5.2.4 及以后版本支持。
sourceTypeNSInteger被拦截的超级群消息的源类型。0:原始消息触发了拦截(默认)。1:消息扩展触发了拦截。2:修改消息后的消息内容处罚了拦截。iOS 端 SDK 5.2.5 及以后版本支持(仅支持超级群)。
sourceContentNSString被拦截的超级群消息或扩展的内容 JSON 字符串。sourceType 字段为 1 时表示扩展内容。sourceType 为 2 时表示修改后的消息内容。详见下方 sourceContent 说明。iOS 端 SDK 5.2.5 及以后版本支持(仅支持超级群)。
  • RCMessageBlockType 说明

    typedef NS_ENUM(NSUInteger, RCMessageBlockType) {
    /*!
    全局敏感词:命中了融云内置的全局敏感词
    */
    RCMessageBlockTypeGlobal = 1,

    /*!
    自定义敏感词拦截:命中了客户在融云自定义的敏感词
    */
    RCMessageBlockTypeCustom = 2,

    /*!
    第三方审核拦截:命中了第三方(数美)或消息回调服务(原模板路由服务)决定不下发的状态
    */
    RCMessageBlockTypeThirdParty= 3,
    };
  • sourceContent 说明

    • sourceType0 时,sourceContent 为 nil。
    • sourceType1 时,sourceContent 是消息扩展内容,示例 {"mid":"xxx-xxx-xxx-xxx","put":{"key":"敏感词"}}。mid 为通知信息的 ID。
    • sourceType2 时,sourceContent 是修改后的消息内容,示例 {"content":"含有敏感信息的文字"}。内置消息类型的消息内容格式消息类型概述

设置敏感信息拦截代理委托

注意

该接口在 RCCoreClient 中。

[RCCoreClient sharedCoreClient].messageBlockDelegate = self;