minz/laravel-aliyun-sdk-push

aliyun-aliyun-sdk-push laravel package

1.0.2 2020-05-16 06:33 UTC

This package is auto-updated.

Last update: 2024-04-16 16:00:53 UTC


README

Laravel based on alibabacloud-sdk
阿里云移动推送open-api文档移动推送文档

Requirement

  • PHP >= 7.0

Installing

$ composer require "minz/laravel-aliyun-push" -vvv

Configuration

  • After installing the library, register the Minz\Laravel\Aliyun\Push\AliyunPushServiceProvider::class in your config/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 your config/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"

api ducument

    /**
     * 发送推送给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)     

usage

facade 门面模式

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");

depend

License

MIT