我在AWS上遇到Parse Push问题。我们已根据这些specifications配置了适配器,并且似乎可以使用curl方法向一个特定用户(不知道该用户如何或为何使用)进行广播,但我很困惑如何(或者如果)我可以使用此命令将用户发送到用户推送通知。例如," X喜欢Y' Z"其中X是liker,Y是喜欢的,Z是喜欢的对象。
答案 0 :(得分:0)
在解析中,您有多个选项来发送推送通知。 通过提供您希望将推送发送到的所有安装的查询,可以将推送通知发送给一个或多个用户。您还可以发送用户订阅的特定频道的推送通知,这非常适合营销,或者如果您的应用具有不同类型的用户(例如:卖家,买家等) 将推送发送到安装而不是用户的原因是因为一个用户可以进行多次安装(例如iphone,ipad,其他设备等)
就像我说有多个选项可以发送推送,但我建议使用以下方法之一发送推送:
Parse.Cloud.afterSave("SendPush", function(request) {
var query = new Parse.Query(Parse.Installation);
query.exists("deviceToken");
var payload = {
alert: "after save push"
};
Parse.Push.send({
data: payload,
where: query
}, {
useMasterKey: true
})
.then(function() {
response.success("Push Sent!");
}, function(error) {
response.error("Error while trying to send push " + error.message);
});
});

然后从iOS SDK中按以下方式调用此云代码函数:
NSDictionary * parameters = @ {}; // put parameters if required
[PFCloud callFunctionInBackground: @"SendPush"
withParameters: parameters block: ^ (id _Nullable object, NSError * _Nullable error) {
// callback result
}
];
在Parse文档中,您可以找到很多关于如何从iOS SDK发送推送的示例,所有示例都可以在这里找到:
http://parseplatform.github.io/docs/ios/guide/#push-notifications
但就像我说的最好是用云代码来做。
答案 1 :(得分:0)
如果您使用没有Parse的AWS服务,答案就会类似。更好的架构是移动设备在云中调用业务逻辑(即,在AWS Lambda函数中)并且该代码发送推送通知。这使您可以构建更安全的解决方案,因为您可以控制内容并控制谁可以在您的业务逻辑中向谁发送(即,您必须在某人的朋友列表中发送)。如果您打开直接从设备发布的权限,那么您可以使系统容易受到攻击,即有人使用该应用的凭据并发布有害内容(可能是您应用的所有用户)。
从AWS Lambda函数发送推送通知的示例...
Can you send SNS push notification from lambda function in Amazon AWS?
此致
安德鲁C
AWS移动开发人员体验