我正在使用Parse,我无法使这种方法起作用。
我们的想法是使用来自“云代码”中任何平台的已知用户标识符向单个用户发送推送。
查询我试过没有将推送传递给该用户(实际上没有推送给任何用户)
PF通过用户指针安装:
var targetUser = new Parse.User();
targetUser.id = userID;
var query = new Parse.Query(Parse.Installation);
query.equalTo('user', targetUser);
在PFUser本身中查询
var query = new Parse.Query(Parse.User);
query.equalTo('objectId', userID);
该方法的完整代码:
Parse.Cloud.define("sendPushContactUser", function(request, response) {
// Get parameters
var userID = request.params.userID; // I'm obviously passing this parameter in the method call
// Query
/* ------ query = Any of the above options ------ */
Parse.Push.send({
where: query,
data: {
title : "New message",
alert : "User message",
badge : "Increment",
sound : "soundNotifUserContact.caf",
"params" : {
"pushType" : 2,
"userID" : userID
}
}
}, {
success: function() {
response.success();
},
error: function(error) {
response.error(error);
}
});
});
感谢您的时间和帮助。
答案 0 :(得分:10)
这对我很有用,但您必须在以下情况下将用户与您的安装相关联:
var query = new Parse.Query(Parse.User);
query.equalTo('username', 'Sento');
// Find devices associated with these users
var pushQuery = new Parse.Query(Parse.Installation);
// need to have users linked to installations
pushQuery.matchesQuery('user', query);
Parse.Push.send({
where: pushQuery,
data: {
aps: {
alert: "Test",
sound: ""
}
}
}, {
success: function () {
response.success("Hello world!");
},
error: function (error) {
response.error(error);
}
});
答案 1 :(得分:0)
您可以将Parse.Session和Parse.Installation与用户指针一起作为Session主键加入,下一步" installationId"作为连接键。
var PushSend = function(payload, dbContact) {
var querySession = new Parse.Query(Parse.Session);
querySession.equalTo("user", dbContact);
querySession.descending("updatedAt");
querySession.first({ useMasterKey: true })
.then(function(dbSession) {
var installId = dbSession.get("installationId");
var installQuery = new Parse.Query(Parse.Installation);
installQuery.equalTo("installationId", installId);
Parse.Push.send( {
where: installQuery,
data: {
alert: payload
}
}, { useMasterKey: true} )
.then(function() {
// "success"
}, function(error) {
// "failed"
} );
}, function(error) {
// "failed"
} );
}
上面的云函数作为参数:
答案 2 :(得分:-2)
我正在使用您提到的两种方法中的第一种,并且它可以正常工作。
请确保您使用的是objectId,而不是targetUser.id
的用户名。
例如:
targetUser.id = 'Qhao1j22j'; //Never hard code like this though.