首先介绍一下urban airship是个什么样的东西。在我们使用手机的时候,经常会受到一些类似于弹窗的东西,会给我们一些提示,可能是微信等一些聊天工具发出的“你受到了一条消息”,这一类我们称为消息推送。苹果有APNs是针对ios做的推送服务,但是对于其他的手机用户,就无法使用APNs了。这个时候,如果有对所有类型的手机进行推送请求的需求诞生,是否针对不同手机就需要使用不同的推送服务呢?这个时候我们需要其他的推送方式,而urban airship就是其中之一。

https://docs.urbanairship.com/index.html 参考文档

上述文档链接包含了urban airship的接口和api。

先看一份推送请求的样例

curl https://go.urbanairship.com/api/lists/ \-X POST \-u "<AppKey>:<MasterSecret>" \-H "Accept: application/vnd.urbanairship+json; version=3" \-H "Content-Type: application/json" \-d '{"audience": { "static_list": "weekly_offers" },"device_types": "all","notification": {"alert": "Check out these deals!","open": {"type": "deep_link","content": "offers"}}}'

(可以使用postman进行调试)

url我们可以在参考文档当中找到(目前使用https://go.urbanairship.com/api/push/)。因为我们是想urban airship发送的请求,所以请求种类填写POST。
<AppKey>:<MasterSecret>是用于登录urbanship的账号和密码,这个需要你在官网进行申请,会有正式用和测试用两种。之后是放在header当中的一些参数,主要是你所要使用的版
本以及之后发送的data内容格式(json)。
 接下来的data内容才是重点,这里面有五个顶级属性Audience ,Notification Payload , Device Types ,Delivery Options  ,Rich Message Content (Optional)

audience用于确定你推送的对象,可以采取直接对于设备地址进行推送,可以使用Channel,APID等属性。另外也可以依据其他一些属性进行对象选择,Named Users是一个很好用的属性,(aliases原先和named users是相同的功能但是现在已经被named users取代),我们可以利用named users发给指定的用户,同时我们也可以发给一类用户群体,使用tags或者tag froups可以让你对标有这类标签的对象进行推送。关于audience信息的设置,可以采取在用户登录你的应用时候,对其进行备注,然后将你设置的信息发送给urban airship,我们在服务器端进行推送的时候,就可以利用audience的信息发送至urban airship实现交互确认。

Notification Payload 这表示我们使用的是Notification进行推送,里面最简单,也是最重要的一个属性就是alert,这个属性需要使用就json格式填写信息,你所填写的信息也将是推送给用户的信息。

Device Types 表示推送设备的类型,可以是all代表推送给所有类型的设备,也可以是ios, android ,blackberry ,wns ,mpns这几种类型,要注意的是Device Types是一个数组。

一般而言,在填写了上述三个属性之后,就可以进行消息的推送了。至于Delivery Options,目前只有唯一的选项expirty。Rich Message Content (Optional)这也是一个可以选择的项,用于丰富你的推送内容。

附上一份php封装推送的代码

class push {...function pushtoios ($appid, $apppassword, $user_id) {$loginInformation = $appid . ":" . $apppassword;$username = $user_id .;$headers = array();$headers[] = "Content-Type: application/json";$headers[] = "Accept: application/vnd.urbanairship+json; version=3";$alert_info = "HELLO";$datasArray = array('audience' => array('named_user' => $username), 'notification' => array('alert' => $alert_info), 'device_types' => array("ios"));$datas = json_encode($datasArray);$response = $this->http_request($url, $datas, 'POST', $headers, $loginInformation);}function http_request($url, $params, $request_type = 'POST', $header = false, $loginInformation = null, $connectTimeout = 15, $readTimeout = 15) {$ch = curl_init();curl_setopt($ch, CURLOPT_TIMEOUT, $readTimeout);curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $connectTimeout);curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);if($header) {curl_setopt($ch, CURLOPT_HEADER, 1);curl_setopt($ch, CURLOPT_HTTPHEADER, $header);}if (!empty($loginInformation)) {curl_setopt($ch, CURLOPT_USERPWD, $loginInformation);}curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $request_type);if ($request_type == 'POST') {curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $params);} 
           curl_setopt($ch, CURLOPT_URL, $url);$result = curl_exec($ch);curl_close($ch);return $result;   }
}

如果返回结果为true,则表示推送成功

urban airship实现消息内容的推送相关推荐

  1. Python Web实时消息后台服务器推送技术---GoEasy

    越来越多的项目需要用到实时消息的推送与接收,怎样实现最方便呢?我这里推荐大家使用GoEasy,它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送! 浏览器兼容性:GoEasy推送 支持we ...

  2. C# Web实时消息后台服务器推送技术---GoEasy

    越来越多的项目需要用到实时消息的推送与接收,怎样实现最方便呢?我这里推荐大家使用GoEasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送! 浏览器兼容性:GoEasy推送 支持w ...

  3. ASP.NET Web实时消息后台服务器推送技术---GoEasy

    越来越多的项目需要用到实时消息的推送与接收,怎样用ASP.NET实现最方便呢?我这里推荐大家使用GoEasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送! 浏览器兼容性:GoEa ...

  4. C# Web实时消息后台服务器推送技术-GoEasy

    越来越多的项目需要用到实时消息的推送与接收,怎样用C#实现最方便呢?我这里推荐大家使用GoEasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送! 浏览器兼容性:GoEasy推送 ...

  5. Ruby Web实时消息后台服务器推送技术---GoEasy

    越来越多的项目需要用到实时消息的推送与接收,怎样实现最方便呢?我这里推荐大家使用GoEasy,它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送! 浏览器兼容性:GoEasy推送 支持we ...

  6. .NET Web实时消息后台服务器推送技术-GoEasy

    越来越多的项目需要用到实时消息的推送与接收,怎样用.NET实现最方便呢?我这里推荐大家使用GoEasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送! 浏览器兼容性:GoEasy推 ...

  7. 基于netty搭建websocket,实现消息的主动推送

    基于netty搭建websocket,实现消息的主动推送 rpf_siwash https://www.jianshu.com/p/56216d1052d7 netty是由jboss提供的一款开源框架 ...

  8. Android端推送消息之极光推送

    推送方式 轮询 --实现方式: 周期性主动获取网络中的数据; --缺点: 费电, 费流量; SMS --实现方式: 服务器端向手机端发送短信, 手机监听短信广播, 将拦截的短信信息进行显示; --优点 ...

  9. PHP Web实时消息后台服务器推送技术---GoEasy

    越来越多的项目需要用到实时消息的推送与接收,怎样用PHP实现最方便呢?我这里推荐大家使用GoEasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送! 浏览器兼容性:GoEasy推送 ...

最新文章

  1. 超酷的实时颜色数据跟踪javascript类库 - Tracking.js
  2. 数据结构实验之串三:KMP应用
  3. Objective-C 工厂方法
  4. mysql8建立表格报错
  5. springboot + mybatis + gradle项目构建过程
  6. 尽早查看针对Java 11的功能
  7. json模拟数据怎么用_在使用axios获取自己模拟的json数据是踩到的坑
  8. 如何让jquery-easyui的combobox像select那样不可编辑
  9. DEFINE_MUTEX
  10. hdoj2046骨牌铺方格题解+拓展(递推/斐波那契)
  11. Arduino uno LED灯实验
  12. 01在Windows Server 2008R2上面搭建一台根DC
  13. Java库 学习笔记 - POI 在Word文档中查找指定关键字并设置背景色
  14. 流程图常用符号及其代表含义
  15. ant pro-table点击表格行高亮显示
  16. EDA程序设计--计时器设计
  17. 网易乌镇咖荟综述 | 2018,AI行业的兴奋与焦虑
  18. app升级搭建服务器
  19. Windows下基础免杀技术
  20. 雄关漫道真如铁 而今迈步从头越

热门文章

  1. 重力球——重力感应器应用
  2. powerDesigner 从postgresql数据库中绘制ER图
  3. 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法? 注:规定从一级到一级有0种走法。
  4. 「Mysql 事务 隔离级别」 读提交和可重复读的区别
  5. 回答腾讯云实名认证常见问题
  6. Python实现美国费城Danny`s Wok中餐馆菜单分析
  7. 最近发现一个很好的开源电商项目给大家推荐一哈,值得学习!!!
  8. linux如何查看dwbs进程,分享Linux命令快捷方式大全
  9. 支付宝支付申请流程,配置过程
  10. 研发4面真题解析(Java岗):和阿里大佬的技术面谈,隔壁都馋哭了