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

时间:2018-04-11 15:12:38

标签: python onesignal

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

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))

2 个答案:

答案 0 :(得分:2)

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

例如,我使用sendTag方法使用键:值对“full_name”标记用户的设备:“Bob Odenkirk”

在我的API调用中,我希望消息说“嘿Bob Odenkirk,你真棒!”

然后我在API调用中的content属性将如下所示:

"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

答案 1 :(得分:0)

您打电话给哪个API端点?我假设https://onesignal.com/api/v1/notifications

看起来密钥应该是'标记'不是'标签'。如果密钥错误,您应该得到400或者应该忽略它。

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

不确定是否适用