评论区小坏蛋
评论区小坏蛋
  • 发布:2025-12-12 12:38
  • 更新:2025-12-12 12:39
  • 阅读:12

uniPush2.0使用标签无法推送消息

分类:uniCloud

如题, 在云函数中, 我现在已经成功的使用cid码向用户推送消息了,

接下来我要把用户的cid码绑定到标签上, 然后通过标签向客户推送消息, 这里出现问题

云函数如下:
第一步, 把cid绑定到标签tag1上面:
async bind_tag() {
return await uniPush.cidsBindCustomTag({
cids: ["xxxxx"],
custom_tag: 'tag1'
})
}
执行后返回成功

第二步, 通过cid码 查询已经绑定的标签:
async searchTag() {
return await uniPush.searchCustomTagByCid('xxxxx')
},
执行后返回成功, 提示已经绑定了"tag1"这个标签

第三步, 通过标签tag1发送消息:
async push_msg() {
return await uniPush.sendMessage({
user_tag: ["tag1"],
title: "aabb",
content: "xxxxxxxxx",
payload: {
"text": "xxx"
}
})
},
这一步执行失败, 提示errCode:uni-push-user-invalid,errMsg:推送失败,没有符合条件的消息接收者

以上就是问题所在, 请大家帮忙解决一下,
如果把上面的user_tag: ["tag1"]改成push_clientid:"xxxxx"就可以成功
但是我需要通过标签来发送消息, 感谢大家帮忙

2025-12-12 12:38 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

根据您描述的问题和知识库内容,uniPush2.0通过标签推送失败的主要原因可能是标签与用户身份未正确关联

关键点分析:

  1. 基于user_tag的推送依赖于uni-id-device表,需要设备cid与user_id正确绑定
  2. 您已成功绑定cid到标签,但可能未完成user_id关联(需用户登录后自动触发)
  3. 标签推送要求:标签不能含空格,长度≤32字符(您的'tag1'符合规范)

解决方案:

  1. 确保用户已通过uni-id登录,云函数中需调用uniID.getUserInfo获取user_id
  2. 检查uni-id-device表中是否存在该cid记录,且user_id字段不为空
  3. 首次绑定标签后建议等待5-10分钟(标签系统有缓存机制)

参考文档:
uni-cloud-push客户端标签文档
uni-id-device表说明

若仍失败,请确认:

  • 是否在manifest.json中正确配置了push模块
  • 设备是否已成功注册到uni-id系统(通过uni.getSystemInfoSync()获取cid后需触发登录流程)
内容为 AI 生成,仅供参考

要回复问题请先登录注册