Onesignal 通知模板,标签不起作用

Onesignal notification template, Tags are not working

没有标签的相同代码(在有效负载中)使用默认模板值成功,当添加标签时,消息变得 200-ok 但在 onesignal 仪表板 - 消息 - 传递页面上我看到没有收件人状态。 我做错了什么?

import json
import requests
headers = {'Authorization': 'Basic mykey', 
    'Content-Type': 'application/json'}
payload = {'app_id': 'myapp_id',
    'include_player_ids': ['my_player_id'],
    'tags': [{'key': 'full_name', 'relation': '=', 'value': 'MOSHOE'}],
    'template_id': 'my_template id'}
req = requests.post('ONESIGNAL_URL',headers=headers,data=json.dumps(payload))

您要调用哪个 API 端点?我假设 https://onesignal.com/api/v1/notifications.

看起来密钥应该是 'tag' 而不是 'tags'。如果密钥错误,您应该得到一个 400,否则它应该被忽略。

此外,假设您使用的是正确的标签键,标签是否有可能过滤掉所有可能的收件人?文档显示在两种情况下返回 200:1) 无效的玩家 ID 和 2) 没有订阅的玩家

不确定这些是否适用

您不能将自定义变量添加到从 OneSignal 发送的通知。您需要先标记用户设备,然后直接使用模板中的标签键或 API 调用,OneSignal 服务器将用您在每台设备上设置的值替换该标签键。

例如,我使用 sendTag 方法和 key:value 对 "full_name" 标记用户的设备:"Bob Odenkirk"

在我的 API 通话中,我希望消息显示 "Hey Bob Odenkirk, you are awesome!"

那么我在 API 调用中的内容 属性 将如下所示:

"contents": {"en": "Hey {{ full_name }}, you are awesome!"}

OneSignal 标记指南:https://documentation.onesignal.com/docs/add-user-data-tags

OneSignal 标签替换指南:https://documentation.onesignal.com/docs/personalization