You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
3.0 KiB
92 lines
3.0 KiB
<?php
|
|
namespace app\utility;
|
|
|
|
use app\home\service\BaseHomeService;
|
|
use Pusher\PushNotifications\PushNotifications;
|
|
|
|
require_once __DIR__ . '/../../vendor/autoload.php';
|
|
class Pusher extends BaseHomeService
|
|
{
|
|
private static $client = null;
|
|
|
|
public static function getClient() {
|
|
if (self::$client === null) {
|
|
self::$client = new \Pusher\PushNotifications\PushNotifications(
|
|
array(
|
|
"instanceId" => env('PUSHER.INSTANCE_ID'),
|
|
"secretKey" => env('PUSHER.SECRET_KEY'),
|
|
)
|
|
);
|
|
}
|
|
return self::$client;
|
|
}
|
|
|
|
// 向一个或多个设备兴趣发布推送通知 $interest 必须是数组类型Array<string>,可以包含多个兴趣名称
|
|
public function publishToInterest($interest, $title, $body)
|
|
{
|
|
$beamsClient = self::getClient();
|
|
return $beamsClient->publishToInterests(
|
|
$interest, // 兴趣名称最多100个
|
|
[
|
|
"apns" => [
|
|
'aps' => [
|
|
"alert" => [
|
|
"title" => $title,
|
|
"body" => $body
|
|
]
|
|
]
|
|
],
|
|
"fcm" => [
|
|
"notification" => [
|
|
"title" => $title,
|
|
"body" => $body
|
|
]
|
|
],
|
|
"web" => [
|
|
"notification" => [
|
|
"title" => $title,
|
|
"body" => $body
|
|
]
|
|
]
|
|
]
|
|
);
|
|
}
|
|
|
|
// 发送到指定用户, 用户列表必须是数组,最大长度1000个用户
|
|
public function publishToUsers($userArr, $title, $body)
|
|
{
|
|
$beamsClient = self::getClient();
|
|
return $beamsClient->publishToUsers(
|
|
// array("user-001", "user-002"),
|
|
$userArr,
|
|
array(
|
|
"fcm" => array(
|
|
"notification" => array(
|
|
"title" => $title,
|
|
"body" => $body
|
|
)
|
|
),
|
|
"apns" => array("aps" => array(
|
|
"alert" => array(
|
|
"title" => $title,
|
|
"body" => $body
|
|
)
|
|
)),
|
|
"web" => array(
|
|
"notification" => array(
|
|
"title" => $title,
|
|
"body" => $body
|
|
)
|
|
)
|
|
)
|
|
);
|
|
}
|
|
|
|
// 生成Beams身份验证令牌,该令牌有效期为24小时 (客户端需要拿这个Token去请求Beams关联设备与用户ID) 注意:每个平台每个用户在任意时刻最多可关联100台设备,当用户退出应用时,可以调用客户端SDK中的.stop方法理解解除关联关系。
|
|
public function generateToken($userId)
|
|
{
|
|
$beamsClient = self::getClient();
|
|
return $beamsClient->generateToken($userId);
|
|
}
|
|
|
|
}
|