关系链管理

最近更新时间:2019-08-06 17:49:26

关系链系统简介

即时通信 IM 开放了用户关系链托管能力,提供关系链相关的一整套完整解决方案。如果您想让每个用户都有自己的好友,并且轻松玩转加删好友等一系列功能,那么您可以选择即时通信 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 好友备注:
1. 备注长度最长不得超过 96 个字节
Tag_SNS_IM_AddSource string 加好友来源:
1. 加好友来源字段包含前缀和关键字两部分;
2. 加好友来源字段的前缀是:AddSource_Type_ ;
3. 关键字:必须是英文字母,且长度不得超过 8 字节,建议用一个英文单词或该英文单词的缩写;
4. 示例:加好友来源的关键字是 Android,则加好友来源字段是:AddSource_Type_Android
Tag_SNS_IM_AddWording string 加好友附言:
1. 加好友附言的长度最长不得超过 256 个字节

自定义好友字段

自定义好友字段是各 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 支持以下三种拉好友模式:不带好友的增量拉取模式、全量分页拉取模式以及带好友拉取模式。详情可参见 拉取好友

校验好友

即时通信 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

校验黑名单的其他相关信息可参见校验黑名单

相关文档