即时通信IM-自定义字段使用及常见问题

2020-11-06 14:24:29 浏览数 (1)

1.前言

      自定义资料字段是各 App 根据各自业务需要而设置的用户数据。通过自定义资料,各 App 可以将一些额外数据附加到用户资料上,并通过现有接口进行读写操作。

      自定义字段的申请和规范请参考:

            https://cloud.tencent.com/document/product/269/1500#.E8.87.AA.E5.AE.9A.E4.B9.89.E8.B5.84.E6.96.99.E5.AD.97.E6.AE.B5.E7.9A.84.E7.94.B3.E8.AF.B7

            https://cloud.tencent.com/document/product/269/38656#.E7.94.A8.E6.88.B7.E8.87.AA.E5.AE.9A.E4.B9.89.E5.AD.97.E6.AE.B5

      当想要对某个用户添加一个标识,如VIP标识,可以添加个用户自定义字段,设置值后,拉取到对应值后,在UI层面进行相应的展示。

2.设置用户自定义字段

1)控制台添加对应的字段

控制台添加自定义字段控制台添加自定义字段

2)调用接口设置字段的值

a) restapi的方式设置

服务端设置资料文档:https://cloud.tencent.com/document/product/269/1640

设置:

使用服务端工具调用接口使用服务端工具调用接口
b) sdk接口的方式设置

调用setSelfInfo接口修改自己的资料:http://doc.qcloudtrtc.com/im/classcom_1_1tencent_1_1imsdk_1_1v2_1_1V2TIMManager.html#af004ab2f1d1458de354883f1995b678a

Android端调用sdk接口设置自定义字段Android端调用sdk接口设置自定义字段

注意:setCustomInfo接口的时候,key 值不需要加 Tag_Profile_Custom 前缀 如文档描述:http://doc.qcloudtrtc.com/im/classcom_1_1tencent_1_1imsdk_1_1v2_1_1V2TIMUserFullInfo.html#a20ea8b360b9103fb7459af4999da9201

3.获取自定义字段的值

1) restapi的方式获取

服务端拉取资料文档:https://cloud.tencent.com/document/product/269/1639

获取:

调用服务端restapi接口获取自定义字段调用服务端restapi接口获取自定义字段
2) sdk接口的方式获取

查询指定的好友资料时,调用接口getFriendsInfo获取资料:https://cloud.tencent.com/document/product/269/44498#.E5.A5.BD.E5.8F.8B.E7.AE.A1.E7.90.86.E7.9B.B8.E5.85.B3.E6.8E.A5.E5.8F.A3

Android端调用接口查询指定好友的自定义字段值Android端调用接口查询指定好友的自定义字段值

查询非好友资料接口 或 查询自己的资料时,调用接口getUsersInfo获取资料:http://doc.qcloudtrtc.com/im/classcom_1_1tencent_1_1imsdk_1_1v2_1_1V2TIMManager.html#a7ca8c0f71a9875021fc35dfcaff68d1e

Android端调用接口查询非好友的用户资料的自定义字段Android端调用接口查询非好友的用户资料的自定义字段

4.问题case

1)有用户反馈:在控制台设置自定义字段,调用接口设置成功,回调返回成功了,但在获取时,就是获取不到,调试为null。

可以按照下方的步骤进行排查下:

a)设置时调用接口,看返回是否成功,是否走了成功回调

如果调用的是sdk接口设置的,看下设置自定义字段时,传入的参数是否多加了前缀 TagProfile_Custom

http://doc.qcloudtrtc.com/im/classcom_1_1tencent_1_1imsdk_1_1v2_1_1V2TIMUserFullInfo.html#a20ea8b360b9103fb7459af4999da9201

设置自定义字段参数时,文档描述不需要前缀设置自定义字段参数时,文档描述不需要前缀
b)如果客户端设置成功了,可以在服务端查下,看服务端保存的记录,验证下

服务端restapi:https://cloud.tencent.com/document/product/269/1639

c)客户端拉取自定义字段时,是否也多加了前缀Tag_Profile_Custom ,不加前缀去获取尝试

这里经常有用户反馈获取不到,是因为加了前缀导致的,去掉后,即可正常获取

排查时,可以遍历下map中的key键值,拿到后去拿对应的value

0 人点赞