ivkos / pushbullet
通过 Pushbullet 向设备和浏览器发送推送通知
Requires
- php: >= 5.4.0
- ext-curl: *
README
描述
一个PHP库,用于访问Pushbullet API,允许你发送所有支持的推送通知类型,管理联系人,发送短信消息,创建/删除频道,以及管理频道订阅。
更多信息,您可以参考以下链接
- 官方网站: https://www.pushbullet.com
- API参考: https://docs.pushbullet.com
- 博客: http://blog.pushbullet.com
- 应用: https://www.pushbullet.com/apps
要求
- PHP 5.4.0 或更高版本
- Composer
- PHP的cURL库
- 您的Pushbullet访问令牌:https://www.pushbullet.com/account
安装
在项目根目录中创建一个 composer.json
文件
{ "require": { "ivkos/pushbullet": "3.*" } }
运行 php composer.phar install
下载库及其依赖项。
快速文档
添加此行以包含Composer包
<?php require 'vendor/autoload.php';
使用您的API密钥初始化Pushbullet
// Get your access token here: https://www.pushbullet.com/account $pb = new Pushbullet\Pushbullet('YOUR_ACCESS_TOKEN');
如果您使用的是PHP Windows,可能需要将cURL指向CA证书包,或者完全禁用SSL证书验证
Pushbullet\Connection::setCurlCallback(function ($curl) { // Get a CA certificate bundle here: // https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt curl_setopt($curl, CURLOPT_CAINFO, 'C:/path/to/ca-bundle.crt'); // Not recommended! Makes communication vulnerable to MITM attacks: // curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); });
设备
列出您账户上的所有活动设备
$pb->getDevices();
返回一个包含 Device
对象的数组。
您可以通过设备的 iden
或 nickname
来定位特定的设备
$pb->device("Galaxy S4")->getPhonebook();
返回一个包含姓名和电话号码的 PhonebookEntry
对象的数组。
定位所有可用的设备以进行推送
$pb->allDevices()->pushAddress("Google HQ", "1600 Amphitheatre Parkway");
这将向所有设备发送地址,并返回一个 Push
对象。
推送通知
您可以使用 push*
方法针对 Contact
、Channel
和 Device
对象。每个 push*
方法都返回一个 Push
对象。如果无法将对象推送,则会抛出 NotPushableException
。
注意
参数
- 标题
- 正文
$pb->device("Galaxy S4")->pushNote("Hello world!", "Lorem ipsum...");
链接
参数
- 标题
- URL
- 正文
$pb->device("Galaxy S4")->pushLink("ivkos on GitHub", "https://github.com/ivkos", "Look at my page!");
地址
参数
- 名称 - 地点的名称。
- 地址 - 地点的地址或地图搜索查询。
$pb->device("Galaxy S4")->pushAddress("Google HQ", "1600 Amphitheatre Parkway");
列表
参数
- 标题
- 列表中的项目数组
$pb->device("Galaxy S4")->pushList("Shopping List", [ "Milk", "Butter", "Eggs" ]);
文件
参数
- 文件路径
- MIME类型(可选) - 如果
null
,则将自动猜测MIME类型 - 标题(可选)
- 正文(可选)
- 替代文件名(可选) - 将文件作为具有此文件名来推送
$pb->device("Galaxy S4")->pushFile( "/home/ivkos/photos/20150314_092653.jpg", "image/jpeg", "Look at this photo!", "I think it's pretty cool", "coolphoto.jpg" );
SMS消息
您只能从支持的设备发送SMS消息。如果尝试从不支持发送SMS消息的设备发送,将抛出 NoSmsException
。
$pb->device("Galaxy S4")->sendSms("+359123", "Hello there!");
向设备电话簿中的所有人发送SMS文本
$people = $pb->device("Galaxy S4")->getPhonebook(); foreach ($people as $person) { $person->sendSms("Happy New Year!"); }
频道管理
获取频道订阅列表
$pb->getChannelSubscriptions();
返回一个包含订阅信息的 Channel
对象的数组。
订阅或取消订阅频道
$pb->channel("greatchannel")->subscribe(); $pb->channel("mehchannel")->unsubscribe();
订阅频道将返回一个包含订阅信息的 Channel
对象。
获取由当前用户创建的频道列表
$pb->getMyChannels();
返回一个包含 Channel
对象的数组。
联系人管理
联系人是您可以发送推送通知的人。他们与设备的电话簿条目不同。
列出您账户上的联系人
$pb->getContacts();
返回一个Contact
对象的数组。
创建联系人
$pb->createContact("John Doe", "johndoe@example.com");
为新建的联系人返回一个Contact
对象。
您可以通过电子邮件或姓名来定位特定的联系人
$pb->contact("johndoe@example.com")->pushNote("Hey John!", "Where are you?");
删除联系人
$pb->contact("Caroline")->delete();
更改联系人的姓名
$pb->contact("William")->changeName("Bill");
返回一个具有更新名称的Contact
对象。
对于更详细的文档,请参考源文件中的PHPDoc。