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
注意: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
获取:
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
查询非好友资料接口 或 查询自己的资料时,调用接口getUsersInfo获取资料:http://doc.qcloudtrtc.com/im/classcom_1_1tencent_1_1imsdk_1_1v2_1_1V2TIMManager.html#a7ca8c0f71a9875021fc35dfcaff68d1e
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