我试图用两个标准发送推送在哪里。 我这样做了:
curl -X POST
-H "X-Parse-Application-Id: myappId" \
-H "X-Parse-REST-API-Key: myRESTApiId" \
-H "Content-Type: application/json" \
-d '{
"where": {“$and”:[{“deviceType": "winphone”},{”channels":{"$all":[“string1”],"$nin":[“string2”]}}]},
"data": {"alert": “String1 is comming”}
}' \
https://api.parse.com/1/push
类似于:https://parse.com/questions/rest-api-or-constraint-on-multiple-fields-using-where,但我收到错误消息:错误代码107 - 无效的JSON解析
如何使用条件$ all和$ nin为给定设备和给定频道发送推送通知。
感谢您的帮助! Hipek
答案 0 :(得分:2)
可能会返回此错误,因为您的where
值与REST API规范不匹配。您还需要确保使用双引号时保持一致,因为这些也可能导致格式错误的JSON错误(例如,不要使用“
和”
,请使用"
)。
在解决之后,我们最终得到以下内容,但REST API Parse docs仍无效:
"where": {
"$and": [
{"deviceType": "winphone”},
{"channels": {
"$all": ["string1"],
"$nin":["string2"]}
}
]
},
您的查询存在以下几个问题:
$and
不是有效的Parse REST API运算符,也不会出现在REST API文档中。 where
查询中的所有约束都是隐式AND,因此无论如何这都是不必要的。
$all
和$nin
channels
之上的约束相互冲突,因为每个密钥不能有多个此类查询。您可能希望为那些应该接收针对string1频道但不是string2频道的消息的安装创建唯一的频道。