Apigee 推送通知 - 一个

Apigee push notification - one

此处记录了 Apigee 的推送通知。 http://apigee.com/docs/api-baas/content/introducing-push-notifications

我用 Apigee 在这里提供的 js sdk 试了一下 http://apigee.com/docs/app-services/content/installing-apigee-sdk-javascript。好像只有客户端才能给自己生成通知?

但是我有一个场景,我想从一个每小时运行一次的 nodejs 作业向多个客户端推送通知。类似这样的东西,但是来自 nodejs sdk 而不是来自 js sdk。

var devicePath = "devices;ql=*/notifications";

我该怎么做?

正如 remus 上面指出的,您可以使用 usergrid 模块 (https://www.npmjs.com/package/usergrid) 来做到这一点。

您基本上是在尝试构造一个如下所示的 API 调用(通过引用设备发送消息):

https://api.usergrid.com/myorg/myapp/devices/deviceUUID/notifications?access_token= access_token_goes_here '{"payloads":{"androidDev":"Hello World!!"}}'

或者像这样(通过引用连接到设备的用户发送消息) https://api.usergrid.com/myorg/myapp/users/fred/notifications?access_token=access_token_goes_here '{"payloads":{"androidDev":"Hello World!!"}}'

您可以使用如下所示的代码执行此操作:

var options = {
    method:'POST',
    endpoint:'devices/deviceUUID/notifications',
    body:{ 'payloads':{'androidDev':'Hello World!!'} }
};
client.request(options, function (err, data) {
    if (err) {
        //error - POST failed
    } else {
        //data will contain raw results from API call
        //success - POST worked
    }
});

var options = {
    method:'POST',
    endpoint:'users/fred/notifications',
    body:{ 'payloads':{'androidDev':'Hello World!!'} }
};
client.request(options, function (err, data) {
    if (err) {
        //error - POST failed
    } else {
        //data will contain raw results from API call
        //success - POST worked
    }
});

注意:发送到 users/username/notifications 端点的第二个调用假设您已经在用户和他们的设备之间建立连接(例如 POST /users/fred/devices/deviceUUID)。