Skip to content
This repository has been archived by the owner on Jun 12, 2023. It is now read-only.

我需要给会话加自定义参数,有对应的接口吗 #11

Closed
iyuhang opened this issue Apr 3, 2020 · 25 comments
Closed

我需要给会话加自定义参数,有对应的接口吗 #11

iyuhang opened this issue Apr 3, 2020 · 25 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@iyuhang
Copy link

iyuhang commented Apr 3, 2020

1.我们需要在本地控制,会话头像的显示的清晰度,需要给会话加自定义参数,用于控制会话展示状态

TencentImPlugin.modifySelfProfile(params: params);
TencentImPlugin.modifyFriend(identifier: null, params: null);

这个两个接口都是修改资料,请问有对应的接口吗?

  1. 修改资料的腾讯文档里也只有类的 key,没有列出 value,

image

image

@JiangJuHong
Copy link
Owner

你的意思是,想给会话设置自定义参数吗?

@iyuhang
Copy link
Author

iyuhang commented Apr 3, 2020

是的,我们之前用的极光,会有一个 setExtras, 可以给会话保存一个 map,不知道这个功能有没有?
image
@JiangJuHong

@JiangJuHong
Copy link
Owner

我没有找到腾讯云IM给会话设置自定义参数的相关接口,或许你可以使用本地缓存来实现,据我所知,腾讯云所有 customInt 和 customStr 仅会存在本地。

@iyuhang
Copy link
Author

iyuhang commented Apr 3, 2020

您的意思是修改好友的
TIM_FRIEND_PROFILE_TYPE_KEY_CUSTOM_PREFIX
的这个值来实现吗,这个 key 的 value 一直不知道是啥
好像这个还需要在腾讯云 IM 后台配置字段,才能修改,似乎也是同步的?

image

image

@JiangJuHong
Copy link
Owner

这个是代表好友关系链相关的值,如果业务复杂,可以这么做,但是不建议。
如果你的自定义值只是在本地,可以使用 Flutter缓存插件,将 会话 ID 与 对应的自定义缓存值存储在本地,�这可能会有效。
目前我没有想到更好的解决办法。

@iyuhang
Copy link
Author

iyuhang commented Apr 3, 2020

好的,谢谢了
另外,因为 TIMUserProfile, TIMFriend 这两个类没有,
我现在还没有找到修改个人信息时,应该填什么 key 😂😂😂😂
Map<String ,dynamic> params = {" what is the key ??" : "新名字"};
TencentImPlugin.modifySelfProfile(params: params);

腾讯的文档里只列了类的属性,没有列出来值

Key Value 说明
TIM_PROFILE_TYPE_KEY_NICK String 昵称
TIM_PROFILE_TYPE_KEY_FACEURL String 头像
TIM_PROFILE_TYPE_KEY_ALLOWTYPE String 好友申请
TIM_PROFILE_TYPE_KEY_GENDER int 性别
TIM_PROFILE_TYPE_KEY_BIRTHDAY int 生日
TIM_PROFILE_TYPE_KEY_LOCATION String 位置
TIM_PROFILE_TYPE_KEY_LANGUAGE int 语言
TIM_PROFILE_TYPE_KEY_LEVEL int 等级
TIM_PROFILE_TYPE_KEY_ROLE int 角色
TIM_PROFILE_TYPE_KEY_SELFSIGNATURE String 签名
TIM_PROFILE_TYPE_KEY_CUSTOM_PREFIX String, int 自定义字段前缀

@JiangJuHong
Copy link
Owner

应该填写的Key就为Key这一列,比如Key是TIM_PROFILE_TYPE_KEY_NICK,值是:123,就代表将昵称修改为 123

@iyuhang
Copy link
Author

iyuhang commented Apr 3, 2020

Map<String ,dynamic> params = {"TIM_PROFILE_TYPE_KEY_NICK":"newname"};
TencentImPlugin.modifySelfProfile(params: params);

会报错: invalid_tag

[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(40009, Execution Error, Err_Profile_Invalid_Tag:TIM_PROFILE_TYPE_KEY_NICK)

@iyuhang
Copy link
Author

iyuhang commented Apr 3, 2020

profileMap.put(TIMUserProfile.TIM_PROFILE_TYPE_KEY_CUSTOM_PREFIX + "Blood", 1);
它用的用法举例里是这样的

@JiangJuHong
Copy link
Owner

错误码 40009 对应的错误信息是 资料字段的 Tag 不存在。,你使用它推荐的办法是否可以成功执行?

@iyuhang
Copy link
Author

iyuhang commented Apr 3, 2020

它推荐的方法是在安卓 SDK 下的,安卓下有这个类 TIMUserProfile,TIM_PROFILE_TYPE_KEY_CUSTOM_PREFIX 这个是这个类的一个属性,但FlutterTencentImPlugin没有这个类或者枚举

@JiangJuHong
Copy link
Owner

这应该是插件的缺失,我将在后续版本完善,但是它应该不影响程序的运作(如果你能知道对应Key的值的话)

@JiangJuHong JiangJuHong added the enhancement New feature or request label Apr 3, 2020
@iyuhang
Copy link
Author

iyuhang commented Apr 3, 2020

急着写一个极光的后补方案

知道这个 key 的值在哪吗

Key Value 说明
TIM_PROFILE_TYPE_KEY_NICK String 昵称
TIM_PROFILE_TYPE_KEY_FACEURL String 头像
TIM_PROFILE_TYPE_KEY_ALLOWTYPE String 好友申请
TIM_PROFILE_TYPE_KEY_GENDER int 性别
TIM_PROFILE_TYPE_KEY_BIRTHDAY int 生日
TIM_PROFILE_TYPE_KEY_LOCATION String 位置
TIM_PROFILE_TYPE_KEY_LANGUAGE int 语言
TIM_PROFILE_TYPE_KEY_LEVEL int 等级
TIM_PROFILE_TYPE_KEY_ROLE int 角色
TIM_PROFILE_TYPE_KEY_SELFSIGNATURE String 签名
TIM_PROFILE_TYPE_KEY_CUSTOM_PREFIX String, int 自定义字段前缀

去 sdk 里找的这个也不对

image

@JiangJuHong
Copy link
Owner

是否尝试直接填写如下值
image

@iyuhang
Copy link
Author

iyuhang commented Apr 3, 2020

我尝试了还是不对
[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(40009, Execution Error, Err_Profile_Invalid_Tag:user_profile_item_nick_name)

@JiangJuHong
Copy link
Owner

好的,我会检查这是否有问题,有结果后告诉你

@JiangJuHong JiangJuHong added the help wanted Extra attention is needed label Apr 3, 2020
@iyuhang
Copy link
Author

iyuhang commented Apr 4, 2020

不知道有结果了吗

@iyuhang
Copy link
Author

iyuhang commented Apr 6, 2020

您好,修改资料这个,有解决办法了吗?
@JiangJuHong

@JiangJuHong
Copy link
Owner

你好,目前我还没有时间修复这个问题,我会在有时间后尽快排查这个问题

@iyuhang
Copy link
Author

iyuhang commented Apr 6, 2020

翻遍文档,终于在服务端 sdk 里找到了路径

https://cloud.tencent.com/document/product/269/1500#.E6.A0.87.E9.85.8D.E8.B5.84.E6.96.99.E5.AD.97.E6.AE.B5

字段名称 类型 描述 更新时有 Push 备注
Tag_Profile_IM_Nick string 昵称 长度不得超过500个字节
Tag_Profile_IM_Gender string 性别 Gender_Type_Unknown:没设置性别Gender_Type_Female:女性Gender_Type_Male:男性
Tag_Profile_IM_BirthDay uint32 生日 推荐用法:20190419
Tag_Profile_IM_Location string 所在地 长度不得超过16个字节,推荐用法如下:App 本地定义一套数字到地名的映射关系后台实际保存的是4个 uint32_t 类型的数字其中第一个 uint32_t 表示国家第二个 uint32_t 用于表示省份第三个 uint32_t 用于表示城市第四个 uint32_t 用于表示区县
Tag_Profile_IM_SelfSignature string 个性签名 长度不得超过500个字节
Tag_Profile_IM_AllowType string 加好友验证方式 AllowType_Type_NeedConfirm:需要经过自己确认才能添加自己为好友AllowType_Type_AllowAny:允许任何人添加自己为好友AllowType_Type_DenyAny:不允许任何人添加自己为好友
Tag_Profile_IM_Language uint32 语言
Tag_Profile_IM_Image string 头像URL 长度不得超过500个字节
Tag_Profile_IM_MsgSettings uint32 消息设置 标志位:Bit0:置0表示接收消息,置1则不接收消息
Tag_Profile_IM_AdminForbidType string 管理员禁止加好友标识 AdminForbid_Type_None:默认值,允许加好友AdminForbid_Type_SendOut:禁止该用户发起加好友请求
Tag_Profile_IM_Level uint32 等级 通常一个 UINT-8 数据即可保存一个等级信息您可以考虑拆分保存,从而实现多种角色的等级信息
Tag_Profile_IM_Role uint32 角色 通常一个 UINT-8 数据即可保存一个角色信息您可以考虑拆分保存,从而保存多种角色信息

@iyuhang
Copy link
Author

iyuhang commented Apr 6, 2020

现在求快加上离线推送~~

@JiangJuHong
Copy link
Owner

下一个计划就是离线推送,它会在完成后推出

@JiangJuHong
Copy link
Owner

@iyuhang
Copy link
Author

iyuhang commented Apr 7, 2020

@JiangJuHong
Copy link
Owner

好的,感谢你的贡献,我会在文档中标出这个地址

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants