2014-08-29 69 views
0

我研究了pushwoosh三层架构的远程API,基本流程发送通知到一块JSON数据的发布到http://cp.pushwoosh.com/json/1.3/createMessage,具体而言,该数据将被打包格式类似如何用nodejs发送pushwoosh通知?

{'application' : PW_APPLICATION, 
    'auth'  : PW_AUTH, 
    'notifications':{ 
      'send_date' : 'now', 
      'content' : 'test', 
      'data'  : { 
       'custom' : 'json data' 
      }, 
      'link' : 'http://pushwoosh.com/' 
    } 
} 

的pushwoosh指南列出了Java,PHP,Ruby等示例代码的一部分。我很困惑,pushwoosh没有提供nodejs版本,所以我必须自己执行它。我使用'http'模块发送请求和主要代码的参数和部分如下所示

var bodyArgs = 
{'application' : PW_APPLICATION, 
    'auth'  : PW_AUTH, 
    'notifications':{ 
      'send_date' : 'now', 
      'content' : 'test', 
      'data'  : { 
       'custom' : 'json data' 
      }, 
      'link' : 'http://pushwoosh.com/' 
    } 
} 

var bodyArgsArray = []; 
for (var i in bodyArgs) { 
    if (bodyArgs.hasOwnProperty(i)) { 
     if(typeof bodyArgs[i] == 'object'){ 
      bodyArgsArray.push(i + '=' + (JSON.stringify(bodyArgs[i]))); 
     }else{ 
      bodyArgsArray.push(i + '=' + (bodyArgs[i])); 
     } 
    } 
} 
var options = { 
    host: 'cp.pushwoosh.com', 
    method: 'POST', 
    path: '/json/1.3/createMessage', 
    headers: {'Content-Length': bodyStr.length, 
    'Content-Type':'application/json', 
    'Access-Control-Allow-Origin':'*' 
} 
var req = http.request(options, function (res){...}); 

不幸的是,我得到了ma lformed响应

[syntax error at end of input] 

如果请求被成功处理,正确的反应shoule是

{ 
    "status_code":200, 
    "status_message":"OK", 
    "response": { 
     "Messages":["{Notification code}", "{Notification code}", ...] 
    } 
} 

我有一个伟大的愿望,以找出正确的请求format.I将是非常欣赏的一个人的版本的NodeJS如果可能的话!

而且pushwoosh远程API导向的网站是

https://www.pushwoosh.com/programming-push-notification/pushwoosh-push-notification-remote-api/

回答

1

我想出如何得到这个工作。你是非常接近

{ “请求”:{ “应用程序”: “APPLICATION_CODE”, “applications_group”: “GROUP_CODE”,//可选。可以用来代替“应用” “身份验证”:“api_access_token”, “通知”:[] }}

这样就剩关闭的事情是,你需要用一个对象的JSON请求所谓的“请求”,你可以看到上面。我实际上正在编写一个节点模块来使用pushwoosh。我想我会张贴这个以防有人在寻找答案。我会在完成后发布npm模块名称,但是如果您真的想让它工作,那么这就是您所要做的。

0

嘿,我已经写了一个node module发送推送通知与Pushwoosh API的移动设备

+0

nluo,怎么样的标签,以限制发送...? – ChrisH 2016-09-09 01:42:12

+0

@ChrisH我相信你可以做的标签内选项参数 – nluo 2016-09-23 01:54:38

+0

非常赞赏。我一直在修补,并得到了工作。很抱歉,我没有回来编辑/删除我的评论。他们的标签机制工作正常,如果可能有点冗长和重复。谢谢! – ChrisH 2016-09-23 11:23:20