simplon / helium
用于通过 Urban Airship 处理 iOS 推送通知的库
Requires
- php: >=5.3.3
- fightbulc/php_curl: 1.0.*
README
_ _ _ _ _ ___(_)_ __ ___ _ __ | | ___ _ __ | |__ ___| (_)_ _ _ __ ___ / __| | '_ ` _ \| '_ \| |/ _ \| '_ \ | '_ \ / _ \ | | | | | '_ ` _ \ \__ \ | | | | | | |_) | | (_) | | | | | | | | __/ | | |_| | | | | | | |___/_|_| |_| |_| .__/|_|\___/|_| |_| |_| |_|\___|_|_|\__,_|_| |_| |_| |_|
Simplon/Helium
我的一个项目需要与 Urban Airship 的 推送 API 通信。
因此,我决定今天抽时间写一个抽象的项目,以 composer 包的形式,使其易于在其它项目中实施。
设置
由于这是一个 composer 包,你只需要在你的 composer 包定义中要求它,并安装/更新它即可
{ "require": { "simplon/helium": "1.1.*" } }
如果你不知道 composer
是什么,你应该看看 Composer 的网页。
还需要其它什么吗?
由于我们依赖于 Urban Airship 的推送 API,你应该已经注册以接收
- 1x 密钥
- 1x 秘密密钥
- 1x 主秘密密钥
如果你还没有注册,请 到这里 注册 Urban Airship。
基本计划是免费的,每月提供 1,000,000 条免费通知。这使我们开始了。太棒了!
简单示例
1. 添加设备令牌
创建设备令牌的最简单方法是
// API keys $key = '12345'; $secret = '12345'; // device token entity $deviceToken = \Simplon\Helium\DeviceToken::init()->setToken('111111222233344455AAABBBCCCDDDD'); // remote register device token $response = \Simplon\Helium\Air::init() ->setApplicationKey($key) ->setApplicationSecret($secret) ->registerDeviceToken($deviceToken);
如果你的响应结果是 "OK",那么你很酷。如果不是,不用担心,你仍然很酷,但不幸的是你的令牌没有注册。
确保你使用了正确的认证密钥。
2. 发送推送通知
基于我们刚刚注册的设备令牌,现在我们可以通过以下方式向设备发送通知
// API keys $key = '12345'; $secret = '12345'; $master = '12345'; // push notification entity $pushNotifications = array(); $pushNotifications[] = \Simplon\Helium\PushNotification::init() ->setDeviceTokens(array('111111222233344455AAABBBCCCDDDD')) ->setAlert("Howdy!") ->getData(); // send push to UA's API $response = \Simplon\Helium\Air::init() ->setApplicationKey($key) ->setApplicationSecret($secret) ->setApplicationMasterSecret($master) ->setNotifications($pushNotifications) ->sendSinglePush();
如果一切顺利,你的响应应该类似于
{ "push_id": "12345-1ad5-11e2-b16d-001b21ce3d90" }
同时,你也应该在设备上收到了推送通知。
更多的选项示例
好吧,就像往常一样,还有更多。注册/管理设备令牌还提供了以下其他选项
$deviceToken = \Simplon\Helium\DeviceToken::init() ->setToken('111111222233344455AAABBBCCCDDDD') ->setAlias('USER_ID') ->setTags(array('tag1', 'tag2')) ->setBadge(5) ->setQuietTime('22:00', '8:00') ->setTimezone('Europe/Berlin');
现在,如果我们回到向我们的设备发送推送通知,我们可以使用 alias
而不是 deviceToken
// API keys $key = '12345'; $secret = '12345'; $master = '12345'; // push notification entity $pushNotifications = array(); $pushNotifications[] = \Simplon\Helium\PushNotification::init() ->setAliases(array('USER_ID')) ->setAlert("Howdy again!") ->setMetadata('type', 'fresh') ->setMetadata('smile', 'on') ->getData(); // send push to UA's API $response = \Simplon\Helium\Air::init() ->setApplicationKey($key) ->setApplicationSecret($secret) ->setApplicationMasterSecret($master) ->setNotifications($pushNotifications) ->sendSinglePush();
我们还可以使用 setTags(array('tag1'))
来定义我们的通知接收者。
管理设备令牌
从远程获取设备数据 (UA)
解释即将到来。如果你等不及,请查看代码。
更新设备数据
解释即将到来。如果你等不及,请查看代码。
取消注册设备
解释即将到来。如果你等不及,请查看代码。
获取所有设备令牌
解释即将到来。如果你等不及,请查看代码。
获取非活动设备令牌
解释即将到来。如果你等不及,请查看代码。
发送/管理推送通知
解释即将到来。如果你等不及,请查看代码。
许可证
Simplon/Helium 可在 MIT 许可证的条款下免费分发。
版权 (c) 2012 Tino Ehrich
本着免费的原则,允许任何获得此软件及其相关文档文件(“软件”)副本的人,在不限制的情况下处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许获得该软件的人这样做,前提是遵守以下条件
在所有副本或软件的实质性部分中应包含上述版权声明和本许可声明。
该软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和不侵犯他人权利的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论该责任是因合同、侵权或其他方式引起的,与该软件或其使用或其他交易有关。