Я создаю приложение, которое пользователь может отправлять сообщения (уведомления) другим пользователям. Для этого я использую синтаксический анализ SDK. Поэтому я отправляю сообщение с устройства в облако разбора с помощью кода ниже.Функция облачных вычислений отправляет JSON конкретному пользователю
final ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("email", "[email protected]");
query.getFirstInBackground(new GetCallback<ParseUser>() {
public void done(ParseUser object, ParseException e) {
if (e == null) {
Toast.makeText(getActivity(), "User found", Toast.LENGTH_SHORT).show();
String search_username = object.getString("username");
String id = object.getObjectId();
Log.d("ObjectID:",id);
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("recipientId", id);
params.put("message", username);
ParseCloud.callFunctionInBackground("sendPushToUser", params, new FunctionCallback<String>() {
public void done(String success, ParseException e) {
if (e == null) {
// Push sent successfully
Toast.makeText(getActivity(), "Request send", Toast.LENGTH_SHORT).show();
}
}
});
Затем у меня есть следующая функция облака для получения и нажатия сообщения конкретному пользователю.
Parse.Cloud.define("sendPushToUser", function(request,response){
var senderUser = request.user;
var recipientUserId = request.params.recipientId;
var message = request.params.message;
var title ="Friend Request";
if(message.length > 140){
message = message.substring(0, 137) + "...";
}
var recipientUser = new Parse.User();
recipientUser.id = recipientUserId;
var pushQuery = new Parse.Query(Parse.Installation);
pushQuery.equalTo("user", recipientUser);
Parse.Push.send({
where: pushQuery,
data: {
"alert":{"data":{"message":"message",
"title":"title"}}
}
}).then(function(){
response.success("true")
}, function(error) {
response.error("Push failed to send with error: "+error.message);
});
});
Но сообщение так и не было получено. Если я отправил push-уведомление из панели анализа синтаксиса, все будет работать нормально. Кто-нибудь знает, как его решить? Устройство ожидает получения JSON, поэтому моя облачная функция не может отправлять данные в формате json? Заранее спасибо
Включили ли вы нажатие клиента? – SaNtoRiaN
Нет, я не думаю, что использование облачных функций не требуется для нажатия на клик. –