反垃圾

功能概述

目前云信支持四类 反垃圾 功能,分别为通用反垃圾、客户端本地反垃圾、易盾反垃圾与客户自定义反垃圾。

通用反垃圾是指使用IM默认的反垃圾功能。通用反垃圾不需要任何配置。具体详见产品介绍。

客户端本地反垃圾

该功能需要联系商务顾问申请开通。支持单聊、群聊和聊天室的文本消息反垃圾。反垃圾规则支持关键字和正则表达式两种匹配方式。

反垃圾词库由开发者在云信后台管理配置,SDK 内负责下载并管理这个词库。垃圾词汇命中后支持三种替换规则:

获取词库

iOS SDK在登录的时候会自动向服务器获取词库。

敏感词检测

传入待检查的文本,以及用于本地替换的字符串(例如希望将原始文本替换为,则传入),SDK检测消息是否命中反垃圾词库,返回检查结果。

@protocol NIMAntispamManager <NSObject>

/**
 *  本地反垃圾检查器
 *
 *  @param option        本地反垃圾检查选项,option.content表示待检查的文本消息,option.replacement表示用于本地替换的字符串
 *  @param error         错误提示
 *  @discussion          此扩展不会漫游到其他端,上层需要保证 NSDictionary 可以转换为 JSON。
 *  @return              本地反垃圾检查结果,本地反垃圾列表会在每次登录后同步更新
 *                       因为网络问题,或者没有登录,都会导致本地反垃圾列表无效的情况,error 中会包含具体出错原因
 */
- (NIMLocalAntiSpamCheckResult *)checkLocalAntispam:(NIMLocalAntiSpamCheckOption *)option
                                              error:(NSError **)error;

@end

参数列表

参数 类型 说明
option NIMLocalAntiSpamCheckOption 本地反垃圾选项,这个选项用于反垃圾的本地检查,可以用这个选项进行一些字符串的本地替换操作

这里说明一下返回结果为 NIMLocalAntiSpamCheckResult 类型,具体类型分为如下几种情况:

/**
 * 本地反垃圾检查结果类型
 */
typedef NS_ENUM (NSInteger, NIMLocalAntiSpamOperate){
    /* 本地反垃圾列表不存在 */
    NIMAntiSpamOperateFileNotExists,
    /* 本地替换 */
    NIMAntiSpamResultLocalReplace,
    /* 本地屏蔽 */
    NIMAntiSpamResultLocalForbidden,
    /* 服务器屏蔽 */
    NIMAntiSpamResultServerForbidden,
    /* 没有命中词库,检查通过 */
    NIMAntiSpamResultNotHit,
    /* 解析失败 */
    NIMAntiSpamResultError
};
/**
 * 本地反垃圾检查选项
 * @discussion 这个选项用于反垃圾的本地检查,可以用这个选项进行一些字符串的本地替换操作
 */
@interface NIMLocalAntiSpamCheckResult : NSObject

/**
 * 结果类型
 */
@property (nonatomic, assign, readonly)            NIMLocalAntiSpamOperate type;

@end

如果命中服务端拦截库,在发送消息前,需要配置相应的属性(如果不设置,服务器不会进行拦截),对应的配置方法为:NIMMessage - antiSpamOption - hitClientAntispamYES

易盾反垃圾

易盾反垃圾是指在控制台开通了易盾功能,通过易盾进行反垃圾,支持:单聊、群聊、聊天室消息,用户头像和用户资料等反垃圾。

如需使用易盾反垃圾,请先申请开通。开通后,可以到控制台配置开启易盾反垃圾的类型,例如:IM的单聊、群聊、聊天室的文本和图片消息等经由易盾反垃圾。

自定义消息比较特殊,开发者如需自定义消息经由易盾反垃圾,在发送消息时需要通过配置NIMMessageantiSpamOption,来说明自定义消息的内容是文本还是图片、视频等,以便易盾按照相应类型进行反垃圾处理。

自定义反垃圾

网易云信还支持开发者通过「第三方回调」来实现自定义的反垃圾。