【问题标题】:Parse run a cloud code when receiving a push接收推送时解析运行云代码
【发布时间】:2015-06-12 15:30:27
【问题描述】:

我有一个通过解析发送推送的 android 应用程序。它向特定通道发送推送以将其状态发送到其他设备。我想根据状态提供多个通道,并将每次推送发送到相应的通道。我可以通过修改android代码并在那里划分频道来轻松做到这一点。但由于它是服务器设备,我宁愿在解析服务器上划分通道,就像触发云代码一样。基本上服务器将发送一个推送它的状态,云代码将解析状态并将其推送到相应的通道。这是安卓代码:

ParsePush push = new ParsePush();
            push.setChannel("STATE_SLEEP");
            push.setMessage(message);
            push.sendInBackground();

ParsePush push = new ParsePush();
            push.setChannel("STATE_AWAKE");
            push.setMessage(message);
            push.sendInBackground();

我想要的是在不设置频道的情况下使用它,让解析服务器决定它将发送哪个频道。这样我可以修改或解析消息本身膨胀,并且比更新 android 设备更容易。

【问题讨论】:

  • 哦,在任何人开始讨论有关客户端推送等的安全细节之前,这个项目是一个内部项目,用于测试目的。
  • 可以从客户端或 parse 的服务器发起推送。两者都可以选择一个频道。客户端还可以调用云函数,该函数又可以进行推送。您是在尝试确定如何做其中一件事,还是要做哪一件事?所有这些都很好,安全方面。
  • 不,我想从客户端发送一个推送并在服务器中拦截它,更改它的内容并发布它来推送。我已经添加了答案。

标签: javascript android parse-platform


【解决方案1】:

我首先从服务器设备发送了一个保存请求。

ParseObject notification = new ParseObject("State");
            notification.put("state", state);
            notification.saveInBackground();

我们在云代码中保存事件之前触发

Parse.Cloud.beforeSave("State", function(request, response) {
    var state = request.object.get("state");
    var channelExist = 0;
    for(i = 0 ; i < channels.length ; i++) {);
      // if channel exists
      push(state, channels[i], response);
    }
    push(state, "All", response);
    if(channelExist == 0) response.error("Channel not found");
});

function push(state, channel, response) {
    Parse.Push.send({
        channels: [ channel ],
        data: {
            alert: state
        }
    }, {
        success: function () {
            response.error("Push sent");
        },
        error: function (error) {
            response.error("Error sending push")
        }
    });
}

在每种情况下,response.error 的想法是防止将解析对象保存到核心表中。当服务端设备发送“保存到状态表”时,云代码触发并推送到相应的通道并返回错误而不保存内容。

【讨论】:

  • 这是您的答案还是有关您问题的更多信息?请改用编辑。
  • 我猜你没有花时间阅读这篇文章,但对于那些真正尝试过我所追求的东西的人来说,这就是答案。
猜你喜欢
  • 1970-01-01
  • 2016-04-16
  • 1970-01-01
  • 1970-01-01
  • 2015-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多