我正在尝试使用 node.js 向 C2DM 服务器推送通知,但我什么也没得到。尝试端口 80 会产生 404,而尝试端口 143 不会产生任何结果。
我已经成功运行了这个 curl 命令:
curl --header "Authorization: GoogleLogin auth=[auth cookie]" "https://android.apis.google.com/c2dm/send" -d registration_id=[reg id] -d "data.payload=payload" -d collapse_key=0
但是,虽然看起来很相似,但我无法让 node.js 对应工作。有任何想法吗?
var querystring = require('querystring');
var http = require('http');
var post_domain = 'https://android.apis.google.com';
var post_port = 143;
var post_path = '/c2dm/send';
var post_data = querystring.stringify({
'registration_id' : '[reg id]',
'collapse_key': '0' ,
'data.payload' : 'Hello!'
});
var post_options = {
host: post_domain,
port: post_port,
path: post_path,
method: 'POST',
headers: {
'Authorization: GoogleLogin auth': '[auth cookie]'
}
};
var post_req = http.request(post_options, function(res) {
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('Response: ' + chunk);
});
});
// write parameters to post body
post_req.write(post_data);
post_req.end();