全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
移动推送

nodejs

更新时间:2017-09-04 18:48:00

1 获取AccessKeyId和AccessKeySecret

为了保证云服务的安全,您需要创建一个能访问移动推送资源的 RAM 子账号,获取该子账号的 AK 密钥,并使用这个 RAM 子账号调用移动推送 OpenAPI。

以下是获取 RAM 子账号 AK 密钥的操作步骤:

2 获取appKey

>>前往移动推动控制台获取 app列表->应用证书

3 引入SDK依赖

  1. var ALY = require('./index.js');

4 示例代码(替换成您的AccessKeyId、AccessKeySecret、appKey)

  1. var push = new ALY.PUSH({
  2. accessKeyId: '<your access key id>',
  3. secretAccessKey: '<your access key secret>',
  4. endpoint: 'http://cloudpush.aliyuncs.com',
  5. apiVersion: '2016-08-01'
  6. }
  7. );
  8. push.push({
  9. AppKey: '<your appKey>',
  10. //推送目标: DEVICE:按设备推送 ALIAS : 按别名推送 ACCOUNT:按帐号推送 TAG:按标签推送; ALL: 广播推送
  11. Target: 'ALL',
  12. //根据Target来设定,如Target=DEVICE, 则对应的值为 设备id1,设备id2. 多个值使用逗号分隔.(帐号与设备有一次最多100个的限制)
  13. TargetValue: 'ALL',
  14. PushType: "NOTICE", //消息类型 MESSAGE NOTICE
  15. //设备类型 ANDROID iOS ALL.
  16. DeviceType: "ANDROID",
  17. Title: 'Push Title',
  18. Body: 'Push Body',
  19. //iOS相关配置
  20. iOSBadge: '5',//iOS应用图标右上角角标
  21. iOSMusic: 'default',//iOS通知声音
  22. iOSApnsEnv: 'PRODUCT',//iOS的通知是通过APNs中心来发送的,需要填写对应的环境信息。"DEV" : 表示开发环境 "PRODUCT" : 表示生产环境
  23. iOSRemind: true,//消息推送时设备不在线(既与移动推送的服务端的长连接通道不通),则这条推送会做为通知,通过苹果的APNs通道送达一次。注意:离线消息转通知仅适用于生产环境
  24. iOSRemindBody: "iOSReminfBody",//iOS消息转通知时使用的iOS通知内容,仅当iOSApnsEnv=PRODUCT && iOSRemind为true时有效
  25. iOSExtParameters: "{\"key\":\"value\"}",//通知的扩展属性(注意 : 该参数要以json map的格式传入,否则会解析出错)
  26. //android相关配置
  27. AndroidNotifyType: "NONE", //通知的提醒方式 "VIBRATE" : 震动 "SOUND" : 声音 "BOTH" : 声音和震动 NONE : 静音
  28. AndroidNotificationBarType: 1, //通知栏自定义样式0-100
  29. AndroidOpenType: "URL", //点击通知后动作 "APPLICATION" : 打开应用 "ACTIVITY" : 打开AndroidActivity "URL" : 打开URL "NONE" : 无跳转
  30. AndroidOpenUrl: "http://www.aliyun.com", //Android收到推送后打开对应的url,仅当AndroidOpenType="URL"有效
  31. AndroidActivity: "com.alibaba.push2.demo.XiaoMiPushActivity", //设定通知打开的activity,仅当AndroidOpenType="Activity"有效
  32. AndroidXiaoMiActivity: "com.ali.demo.MiActivity", //设置该参数后启动小米托管弹窗功能, 此处指定通知点击后跳转的Activity(托管弹窗的前提条件:1. 集成小米辅助通道;2. StoreOffline参数设为true)
  33. AndroidExtParameters: "{\"key\":\"value\"}", //通知的扩展属性(注意 : 该参数要以json map的格式传入,否则会解析出错)
  34. //推送控制
  35. //可以设置成你指定固定时间
  36. PushTime: (new Date((new Date()).getTime() + 3600 * 1000)).toISOString().replace(/\.\d\d\d/g,''),
  37. // 离线消息的过期时间,过期则不会再被发送。离线消息最长保存72小时,过期时间时长不会超过发送时间加72小时。时间格式按照ISO8601标准表示,并需要使用UTC时间,格式为YYYY-MM-DDThh:mm:ssZ
  38. ExpireTime: (new Date((new Date()).getTime() + 12 * 3600 * 1000)).toISOString().replace(/\.\d\d\d/g,''),
  39. StoreOffline: false//离线消息是否保存,若保存, 在推送时候,用户即使不在线,下一次上线则会收到
  40. }, function (err, res) {
  41. console.log(err, res);
  42. });
本文导读目录