Laravel based on alibabacloud-sdk
阿里云移动推送open-api文档移动推送文档
- PHP >= 7.0
$ composer require "minz/laravel-aliyun-push" -vvv
- After installing the library, register the
Minz\Laravel\Aliyun\Push\AliyunPushServiceProvider::class
in yourconfig/app.php
file:
'providers' => [
......
Minz\Laravel\Aliyun\Push\AliyunPushServiceProvider::class,
],
Laravel 5.5+ skip
- After installing the library, register the
'AliyunPush' => Minz\Laravel\Aliyun\Push\AliyunPushFacade::class,
in yourconfig/app.php
file:
'providers' => [
......
'AliyunPush' => Minz\Laravel\Aliyun\Push\AliyunPushFacade::class,
],
Laravel 5.5+ skip
- publish config file:
php artisan vendor:publish --provider="Minz\Laravel\Aliyun\Push\AliyunPushServiceProvider"
/**
* 发送推送给iOS和Android
*
* @param string $title 标题
* @param string $body 内容
* @param Minz\Laravel\Aliyun\Push\Target\Target $target
* @param array|null $paramArray 额外参数
* @param string|null $pushTime 定时发送 Y-m-d H:i:s
* @param string $pushType 推送类型 NOTICE:推送(默认) MESSAGE:消息
* @param string|null $iOSSubTitle iOS推送副标题
* @return bool
* @throws AliyunPushTimeFormatWrongException
* @throws AliyunPushTypeWrongException
* @throws \AlibabaCloud\Client\Exception\ClientException
* @throws \AlibabaCloud\Client\Exception\ServerException
*/
public function push(string $title, string $body, Target $target, array $paramArray = null, string $pushTime = null, $pushType = "NOTICE", string $iOSSubTitle = null)
/**
* 发推送给安卓用户
*
* @param string $title 标题
* @param string $body 内容
* @param Minz\Laravel\Aliyun\Push\Target\Target $target
* @param array|null $paramArray 额外参数
* @param string|null $pushTime 定时发送 Y-m-d H:i:s
* @param string $pushType 推送类型 NOTICE:推送(默认) MESSAGE:消息
* @return \AlibabaCloud\Client\Result\Result
* @throws AliyunPushTimeFormatWrongException
* @throws AliyunPushTypeWrongException
* @throws \AlibabaCloud\Client\Exception\ClientException
* @throws \AlibabaCloud\Client\Exception\ServerException
*/
public function pushNoticeToAndroid(string $title, string $body, Target $target, array $paramArray = null, string $pushTime = null, string $pushType = "NOTICE")
/**
* 发推送给iOS用户
*
* @param string $title 标题
* @param string $body 内容
* @param Minz\Laravel\Aliyun\Push\Target\Target $target
* @param array|null $paramArray 额外参数
* @param string|null $pushTime 定时发送 Y-m-d H:i:s
* @param string $pushType 推送类型 NOTICE:推送(默认) MESSAGE:消息
* @param string|null $iOSSubTitle iOS推送副标题
* @return \AlibabaCloud\Client\Result\Result
* @throws AliyunPushTimeFormatWrongException
* @throws AliyunPushTypeWrongException
* @throws \AlibabaCloud\Client\Exception\ClientException
* @throws \AlibabaCloud\Client\Exception\ServerException
*/
public function pushNoticeToIOS(string $title, string $body, Target $target, array $paramArray = null, string $pushTime = null, string $pushType = "NOTICE", string $iOSSubTitle = null)
use Minz\Laravel\Aliyun\Push\Target\DeviceTarget; //可以选择多个Target object
$target = new DeviceTarget(["xx", "xx", "xx"]);
$pushTime = gmdate('Y-m-d H:i:s', strtotime("+1 minute"));
$result = AliyunPush::push("标题", "body", $target, ['k' => 'v'], $pushTime, "NOTICE", "subTitle");
use Minz\Laravel\Aliyun\Push\Target\TagTarget;
use Minz\Laravel\Aliyun\Push\AliyunPush;
//单个tag
$target = new TagTarget(["男性"]);
//带有逻辑关系多个tag
$target = new \Minz\Laravel\Aliyun\Push\Target\TagTarget([
"and" => [
[
"tag" => "男"
],
[
"or" => [
"tag" => '活跃'
]
]
],
]);
$pushTime = gmdate('Y-m-d H:i:s', strtotime("+1 minute"));
$result = (new AliyunPush())->push("标题", "body", $target, ['k' => 'v'], $pushTime, "NOTICE", "subTitle");
MIT