全部产品
移动推送

php

更新时间:2017-06-07 13:26:11   分享:   

1 获取AccessKeyId和AccessKeySecret

>>前往阿里云官网控制台获取

2 获取appKey

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

3 引入SDK依赖

  1. include_once '../aliyun-php-sdk-core/Config.php';
  2. use \Push\Request\V20150827 as Push;

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

  1. $accessKeyId = "";
  2. $accessSecret = "";
  3. $appKey = 123456;
  4. $iClientProfile = DefaultProfile::getProfile("cn-hangzhou", $accessKeyId, $accessSecret);
  5. $client = new DefaultAcsClient($iClientProfile);
  6. $request = new Push\PushRequest();
  7. // 推送目标
  8. $request->setAppKey($appKey);
  9. $request->setTarget("all"); //推送目标: device:推送给设备; account:推送给指定帐号,tag:推送给自定义标签; all: 推送给全部
  10. $request->setTargetValue("all"); //根据Target来设定,如Target=device, 则对应的值为 设备id1,设备id2. 多个值使用逗号分隔.(帐号与设备有一次最多100个的限制)
  11. $request->setDeviceType(3); // 设备类型deviceType 取值范围为:0~3. iOS设备: 0; Android设备: 1; 全部: 3, 这是默认值.
  12. // 推送配置
  13. $request->setType(1); // 0:表示消息(默认为0), 1:表示通知
  14. $request->setTitle("Hello OpenAPI!"); // 消息的标题
  15. $request->setBody("PushRequest body"); // 消息的内容
  16. $request->setSummary("PushRequest summary"); // 通知的摘要
  17. // 推送配置: iOS
  18. $request->setiOSBadge("5"); // iOS应用图标右上角角标
  19. $request->setiOSMusic("default"); // iOS通知声音
  20. $request->setiOSTitle("iOS 10 Title");//iOS通知标题(iOS 10+)
  21. $request->setiOSSubtitle("iOS 10 Subtitle");//iOS通知副标题(iOS 10+)
  22. $request->setiOSMutableContent("true");//使能通知扩展处理(iOS 10+)
  23. $request->setiOSNotificationCategory("test_category");//设定通知Category(iOS 10+)
  24. $request->setiOSExtParameters("{\"attachment\":\"https://xxxx.xxx/notification_pic.png\",\"k2\":\"v2\"}"); //自定义的kv结构,开发者扩展用 针对iOS设备(iOS 10+可以使用attachment关键字来指定富媒体推送通知的资源Url)
  25. $request->setApnsEnv("DEV");
  26. //$request->setRemind("false"); // 推送时设备不在线(既与移动推送的服务端的长连接通道不通),则这条推送会做为通知,通过苹果的APNs通道送达一次(发送通知时,Summary为通知的内容,Message不起作用)。注意:离线消息转通知仅适用于生产环境
  27. // 推送配置: Android
  28. $request->setAndroidOpenType("3"); // 点击通知后动作,1:打开应用 2: 打开应用Activity 3:打开 url 4 : 无跳转逻辑
  29. $request->setAndroidOpenUrl("http://www.baidu.com"); // Android收到推送后打开对应的url,仅仅当androidOpenType=3有效
  30. //$request->setsetXiaomiActivity("_Your_XiaoMi_Activity_");//设置该参数后启动小米托管弹窗功能,此处指定通知点击后跳转的Activity(托管弹窗的前提条件:1. 继承小米辅助通道;2. storeOffline设为true)
  31. $request->setAndroidExtParameters("{\"k1\":\"android\",\"k2\":\"v2\"}"); // 设定android类型设备通知的扩展属性
  32. // 推送控制
  33. $pushTime = gmdate('Y-m-d\TH:i:s\Z', strtotime('+3 second'));//延迟3秒发送
  34. $request->setPushTime($pushTime);
  35. $expireTime = gmdate('Y-m-d\TH:i:s\Z', strtotime('+1 day'));//设置失效时间为1天
  36. $request->setExpireTime($expireTime);
  37. $request->setTimeOut(3);
  38. $request->setStoreOffline("false"); // 离线消息是否保存,若保存, 在推送时候,用户即使不在线,下一次上线则会收到
  39. $response = $client->getAcsResponse($request);
  40. print_r("\r\n");
  41. print_r($response);
本文导读目录
本文导读目录
以上内容是否对您有帮助?