关系链管理

关系链系统简介

即时通信 IM 开放了用户关系链托管能力,提供关系链相关的一整套完整解决方案。如果您不希望自行开发或维护 App 内用户之间的好友关系,并且轻松玩转加删好友等一系列功能,那么您可以选择即时通信 IM 的关系链托管服务:
即时通信 IM 提供关系链的存储能力,并确保您的数据具备异地容灾、多地部署和自动扩容缩容的能力,帮助您从服务器宕机、多拷贝主从复制和扩容缩容等复杂处理流程中得到完全地解放。
即时通信 IM 提供业界通用的业务处理流程,帮助您在用户关系链的逻辑上彻底地解放。
即时通信 IM 提供专业的运营流程和运营团队,全年 99.99% 的稳定服务质量,帮助您为用户提供具有稳定口碑的服务。
即时通信 IM 提供简单易用的服务接口和快捷接入的帮助指引,全程为您提供星级服务。
关系链是一组用于描述用户和其他用户关系的数据,即时通信 IM 目前支持的关系链有好友表和黑名单两种。

关系链字段

即时通信 IM 关系链系统支持标配关系链字段和自定义关系链字段,关系链字段有如下特性:
关系链字段通过 Key-Value 形式表示。
Key 为 String 类型,其命名仅支持英文大小写字母、数字、下划线。
Value 有以下几种类型: a. uint64_t 类型的整数(自定义关系链字段不支持)。 b. string 类型的字符串(string 的长度不得超过 500 字节)。 c. bytes 类型的一段 buffer(buffer 的长度不得超过 500 字节)。 d. string 类型的字符串数组(每个 string 的长度都不得超过 500 字节,仅供好友表的 Tag_SNS_IM_Group 字段使用)。

好友表

即时通信 IM 的好友列表最多允许添加3000个好友。 好友表支持标配好友字段和自定义好友字段。

标配好友字段

目前即时通信 IM 支持的标配好友字段如下:
字段名称
类型
描述
Tag_SNS_IM_Group
Array
好友分组:
1. 最多支持 32 个分组;2. 不允许分组名为空;3. 分组名长度不得超过 30 个字节;4. 同一个好友可以有多个不同的分组
Tag_SNS_IM_Remark
string
好友备注:备注长度最长不得超过 96 个字节
Tag_SNS_IM_AddSource
string
加好友来源:1. 加好友来源字段包含前缀和关键字两部分;2. 加好友来源字段的前缀是:AddSource_Type_ ;3. 关键字:必须是英文字母,且长度不得超过 8 字节,建议用一个英文单词或该英文单词的缩写;4. 示例:加好友来源的关键字是 Android,则加好友来源字段是:AddSource_Type_Android
Tag_SNS_IM_AddWording
string
加好友附言:1. 加好友附言的长度最长不得超过 256 个字节
Tag_SNS_IM_AddTime
Integer
加好友的时间戳

自定义好友字段

自定义好友字段是各 App 根据各自业务需要而设置的好友数据。通过自定义好友字段,各 App 可以将一些额外数据附加到好友上,并通过现有的接口进行读写操作。 App 管理员可以通过即时通信 IM 控制台 >应用配置>功能配置申请自定义好友字段,申请提交后,自定义好友字段将在5分钟内生效。
自定义好友字段的命名规则如下:
自定义好友字段的名称分为以下两部分:前缀、关键字。
自定义好友字段的前缀是:Tag_SNS_Custom。
关键字:必须是英文字母,且长度不得超过 8 字节,建议用一个英文单词或该英文单词的缩写。
示例:某 App 要申请的自定义好友字段的关键字是 Test,则自定义关系字段的名称是:Tag_SNS_Custom_Test。
申请自定义好友字段时,需要为每一个自定义好友字段提交如下资料:
自定义好友字段的名称(Key)。
自定义好友字段的类型(Value):详情可参见 关系链字段

添加好友

即时通信 IM 支持的加好友模式有:批量加好友、一回合加好友和两回合加好友,详情可参见 添加好友
双向好友:用户 A 的好友表中有用户 B,B 的好友表中也有 A。 单向好友:用户 A 的好友表中有用户 B,但 B 的好友表中却没有 A。 加好友验证方式:每个用户都可以选择自己以哪种方式被其他用户添加为好友,详情可参见 标配资料字段 中的加好友验证方式字段。 一回合加好友:如果帐号 A 设置的加好友验证方式是 AllowType_Type_AllowAny,那么任何人添加 A 为好友都可以直接添加成功,这种一个请求就添加好友成功的场景称作一回合加好友。 两回合加好友:如果帐号 A 设置的加好友验证方式是 AllowType_Type_NeedConfirm,那么任何人添加 A,A 都会收到一个请求加好友验证消息,这是第一个回合,然后 A 对这个请求加好友验证消息进行同意操作时,这是第二个回合,这种需要验证的加好友场景就被称为两回合加好友。

删除好友

即时通信 IM 支持单向删除好友和双向删除好友等两种好友删除模式。
删除模式
DeleteType
描述
单向删除好友
Delete_Type_Single
只将 To_Account 从 From_Account 的好友表中删除,但不会将 From_Account 从 To_Account 的好友表中删除
双向删除好友
Delete_Type_Both
将 To_Account 从 From_Account 的好友表中删除,同时将 From_Account 从 To_Account 的好友表中删除
即时通信 IM 也支持批量删除好友,更多信息可参见 删除好友

校验好友

即时通信 IM 支持以下两种好友校验模式:单向校验好友关系、双向校验好友关系。
校验模式
CheckType
描述
单向校验好友关系
CheckResult_Type_Single
只会检查 From_Account 的好友表中是否有 To_Account,不会检查 To_Account 的好友表中是否有 From_Account
双向校验好友关系
CheckResult_Type_Both
既会检查 From_Account 的好友表中是否有 To_Account,也会检查 To_Account 的好友表中是否有 From_Account
单向校验好友关系时可能的结果有:
Relation
描述
CheckResult_Type_NoRelation
From_Account 的好友表中没有 To_Account,但无法确定 To_Account 的好友表中是否有 From_Account
CheckResult_Type_AWithB
From_Account 的好友表中有 To_Account,但无法确定 To_Account 的好友表中是否有 From_Account
双向校验好友关系时可能的结果有:
Relation
描述
CheckResult_Type_BothWay
From_Account 的好友表中有 To_Account,To_Account 的好友表中也有 From_Account
CheckResult_Type_AWithB
From_Account 的好友表中有 To_Account,但 To_Account 的好友表中没有 From_Account
CheckResult_Type_BWithA
From_Account 的好友表中没有 To_Account,但 To_Account 的好友表中有 From_Account
CheckResult_Type_NoRelation
From_Account 的好友表中没有 To_Account,To_Account 的好友表中也没有 From_Account
校验好友的其他相关信息可参见 校验好友

黑名单

每个用户都有一份黑名单,用于保存被该用户屏蔽的帐号。 用户 A 将用户 B 加入黑名单后,A 与 B 之间的好友关系会被解除(如果有),且 A 与 B 之间无法再发起加好友请求。 即时通信 IM 的黑名单列表最多允许添加 1000 个黑名单帐号,且不支持配置。

添加黑名单

即时通信 IM 支持批量添加黑名单,详情可参见:添加黑名单

删除黑名单

即时通信 IM 支持批量删除黑名单,详情可参见:删除黑名单

拉取黑名单

即时通信 IM 支持通过分页模式拉取全量黑名单,详情可参见:拉取黑名单

校验黑名单

即时通信 IM 支持以下两种黑名单校验模式:单向校验黑名单关系、双向校验黑名单关系。
校验模式
CheckType
描述
单向校验黑名单关系
BlackCheckResult_Type_Single
只会检查 From_Account 的黑名单中是否有 To_Account,不会检查 To_Account 的黑名单中是否有 From_Account
双向校验黑名单关系
BlackCheckResult_Type_Both
既会检查 From_Account 的黑名单中是否有 To_Account,也会检查 To_Account 的黑名单中是否有 From_Account
单向校验黑名单关系时可能的结果有:
Relation
描述
BlackCheckResult_Type_AWithB
From_Account 的黑名单中有 To_Account,但无法确定 To_Account 的黑名单中是否有 From_Account
BlackCheckResult_Type_NO
From_Account 的黑名单中没有 To_Account,但无法确定 To_Account 的黑名单中是否有 From_Account
双向校验黑名单关系时可能的结果有:
Relation
描述
BlackCheckResult_Type_BothWay
From_Account 的黑名单中有 To_Account,To_Account 的黑名单中也有 From_Account
BlackCheckResult_Type_AWithB
From_Account 的黑名单中有 To_Account,但 To_Account 的黑名单中没有 From_Account
BlackCheckResult_Type_BWithA
From_Account 的黑名单中没有 To_Account,但 To_Account 的黑名单中有 From_Account
BlackCheckResult_Type_NO
From_Account 的黑名单中没有 To_Account,To_Account 的黑名单中也没有 From_Account
校验黑名单的其他相关信息可参见 校验黑名单

相关文档