afiqiqmal / huawei-push
Simple Huawei Push in PHP
Installs: 50 324
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 2
Forks: 4
Open Issues: 1
Requires
- php: ^7.2|^8.0
- ext-json: *
- guzzlehttp/guzzle: ^6.5.5|^7.0.1
- tightenco/collect: ^8.0
Requires (Dev)
- phpunit/phpunit: ^9.4
- vlucas/phpdotenv: ^5.2
README
Huawei Push PHP
Installation
composer require afiqiqmal/huawei-push
Usage
Get Access Token
References : Huawei OAuth
$access = HuaweiPushKit::make([ 'app_id' => 'YOUR APP ID', 'client_secret' => 'YOUR CLIENT SECRET' ]) ->getAccessToken(); //Laravel $access = HuaweiPushKit::make(config('huawei'))->getAccessToken(); $access = app(HuaweiPushKit::class)->getAccessToken();
Response
{ "access_token": "ACCESS TOKEN", "expires_in": 3600, // seconds "token_type": "Bearer" }
Push Message
References : Huawei Push Kit
$response = HuaweiPushKit::make([]) ->withAccessToken('ACCESS TOKEN') ->push( NotificationPayload::make() ->setValidateOnly(false) ->setMessage( Message::make() ->setNotification( Notification::make() ->setTitle("Testing Title") ->setBody("Body") ->setImage("https://seeklogo.com/images/L/laravel-logo-41EC1D4C3F-seeklogo.com.png") ) ->setAndroid( Config::make() // AndroidConfig ->setUrgency(2) ->setCategory(1) ->setTimeToLive(3360) ->setTags('TrumpIsDown') ->isStaging(true) ->setNotification( AndroidNotification::make() // Notification ->setClickAction( ClickAction::make() ->setType(1) ->setIntent("pushscheme://com.huawei.hms.hmsdemo/deeplink?#Intent;i.isFeed=1;S.feedDocId=0LauP4X6;end") ->setUrl('https://www.google.com') ) ->setImage('https://seeklogo.com/images/L/laravel-logo-41EC1D4C3F-seeklogo.com.png') ->setIcon('/raw/ic_launcher2') ->setColor('#FFFFFF') ->setSound('/raw/shake') ->setDefaultSound(false) ->setPriority(3) ->setChannelId("HMSTestDemo") ->setAutoClear(100000) // ms ->setSummary("Summary") ->setStyle(0) ->setNotifyId(123456) ->setButtons([ Button::make()->setName("Home")->setActionType(0) ]) ) ) ->setTopic("Topic") ) );
Response
{ "code": "80000000", "msg": "Success", "requestId": "160502268063038626000406" }
TODO
- WebPUSH
- APNS
License
Licensed under the MIT license