ivkos/pushbullet

通过 Pushbullet 向设备和浏览器发送推送通知

3.3.0 2016-05-22 12:42 UTC

This package is not auto-updated.

Last update: 2024-09-11 13:15:12 UTC


README

描述

一个PHP库,用于访问Pushbullet API,允许你发送所有支持的推送通知类型,管理联系人,发送短信消息,创建/删除频道,以及管理频道订阅。

更多信息,您可以参考以下链接

要求

安装

在项目根目录中创建一个 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 对象的数组。

您可以通过设备的 idennickname 来定位特定的设备

$pb->device("Galaxy S4")->getPhonebook();

返回一个包含姓名和电话号码的 PhonebookEntry 对象的数组。

定位所有可用的设备以进行推送

$pb->allDevices()->pushAddress("Google HQ", "1600 Amphitheatre Parkway");

这将向所有设备发送地址,并返回一个 Push 对象。

推送通知

您可以使用 push* 方法针对 ContactChannelDevice 对象。每个 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。