使用Rest API在parse.com中发送高级推送通知

时间:2015-08-31 23:16:26

标签: rest curl parse-platform

我试图用两个标准发送推送在哪里。 我这样做了:

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

1 个答案:

答案 0 :(得分:2)

可能会返回此错误,因为您的where值与REST API规范不匹配。您还需要确保使用双引号时保持一致,因为这些也可能导致格式错误的JSON错误(例如,不要使用,请使用")。

在解决之后,我们最终得到以下内容,但REST API Parse docs仍无效:

"where": {
  "$and": [ 
            {"deviceType": "winphone”},
            {"channels": { 
               "$all": ["string1"],
               "$nin":["string2"]}
              }
          ]
},

您的查询存在以下几个问题:

  1. $and不是有效的Parse REST API运算符,也不会出现在REST API文档中。 where查询中的所有约束都是隐式AND,因此无论如何这都是不必要的。

  2. $all$nin channels之上的约束相互冲突,因为每个密钥不能有多个此类查询。您可能希望为那些应该接收针对string1频道但不是string2频道的消息的安装创建唯一的频道。