全部产品
移动推送

python

更新时间:2017-09-04 18:48:17   分享:   

1 获取AccessKeyId和AccessKeySecret

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

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

2 获取appKey

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

3 引入SDK依赖

  1. import properties
  2. from aliyunsdkpush.request.v20160801 import PushRequest
  3. from aliyunsdkcore import client
  4. from datetime import *
  5. import time

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

  1. clt = client.AcsClient(properties.accessKeyId,properties.accessKeySecret,properties.regionId)
  2. request = PushRequest.PushRequest()
  3. request.set_AppKey(properties.appKey)
  4. #推送目标: DEVICE:按设备推送 ALIAS : 按别名推送 ACCOUNT:按帐号推送 TAG:按标签推送; ALL: 广播推送
  5. request.set_Target('ALL')
  6. #根据Target来设定,如Target=DEVICE, 则对应的值为 设备id1,设备id2. 多个值使用逗号分隔.(帐号与设备有一次最多100个的限制)
  7. request.set_TargetValue('ALL')
  8. #设备类型 ANDROID iOS ALL
  9. request.set_DeviceType("ANDROID")
  10. #消息类型 MESSAGE NOTICE
  11. request.set_PushType("NOTICE")
  12. #消息的标题
  13. request.set_Title("Open Api Push Title")
  14. #消息的内容
  15. request.set_Body("Body from ali push open api2.0 : Push")
  16. # iOS配置
  17. #iOS应用图标右上角角标
  18. request.set_iOSBadge("5")
  19. #iOS通知声音
  20. request.set_iOSMusic("default")
  21. #iOS的通知是通过APNs中心来发送的,需要填写对应的环境信息。"DEV" : 表示开发环境 "PRODUCT" : 表示生产环境
  22. request.set_iOSApnsEnv("PRODUCT")
  23. # 消息推送时设备不在线(既与移动推送的服务端的长连接通道不通),则这条推送会做为通知,通过苹果的APNs通道送达一次。注意:离线消息转通知仅适用于生产环境
  24. request.set_iOSRemind(True)
  25. #iOS消息转通知时使用的iOS通知内容,仅当iOSApnsEnv=PRODUCT && iOSRemind为true时有效
  26. request.set_iOSRemindBody("iOSRemindBody");
  27. #自定义的kv结构,开发者扩展用 针对iOS设备
  28. request.set_iOSExtParameters("{\"k1\":\"ios\",\"k2\":\"v2\"}")
  29. #android配置
  30. #通知的提醒方式 "VIBRATE" : 震动 "SOUND" : 声音 "BOTH" : 声音和震动 NONE : 静音
  31. request.set_AndroidNotifyType("SOUND")
  32. #通知栏自定义样式1-100
  33. request.set_AndroidNotificationBarType(1)
  34. #点击通知后动作 "APPLICATION" : 打开应用 "ACTIVITY" : 打开AndroidActivity "URL" : 打开URL "NONE" : 无跳转
  35. request.set_AndroidOpenType("URL");
  36. #Android收到推送后打开对应的url,仅当AndroidOpenType="URL"有效
  37. request.set_AndroidOpenUrl("www.aliyun.com")
  38. #设定通知打开的activity,仅当AndroidOpenType="Activity"有效
  39. request.set_AndroidActivity("com.alibaba.push2.demo.OpenActivity")
  40. #Android通知声音
  41. request.set_AndroidMusic("default")
  42. #设置该参数后启动辅助弹窗功能, 此处指定通知点击后跳转的Activity(辅助弹窗的前提条件:1. 集成第三方辅助通道;2. StoreOffline参数设为true)
  43. request.set_AndroidPopupActivity("com.alibaba.push2.demo.PopupActivity")
  44. #设置辅助弹窗通知标题
  45. request.set_AndroidPopupTitle("Popup Title")
  46. #设置辅助弹窗通知内容
  47. request.set_AndroidPopupBody("Popup Body")
  48. #设定通知的扩展属性。(注意 : 该参数要以 json map 的格式传入,否则会解析出错)
  49. request.set_AndroidExtParameters("{\"k1\":\"android\",\"k2\":\"v2\"}")
  50. #推送控制
  51. #30秒之后发送, 也可以设置成你指定固定时间
  52. pushDate = datetime.utcnow() + timedelta(seconds = +30)
  53. #24小时后消息失效, 不会再发送
  54. expireDate = datetime.utcnow() + timedelta(hours = +24)
  55. #转换成ISO8601T数据格式
  56. pushTime = pushDate.strftime("%Y-%m-%dT%XZ")
  57. expireTime = expireDate.strftime("%Y-%m-%dT%XZ")
  58. request.set_PushTime(pushTime)
  59. request.set_ExpireTime(expireTime)
  60. #设置过期时间,单位是小时
  61. request.set_TimeOut(24)
  62. request.set_StoreOffline(True)
  63. result = clt.do_action(request)
  64. print result
本文导读目录
本文导读目录
以上内容是否对您有帮助?