1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- <?php
- namespace App\Components;
- use GuzzleHttp\Client;
- use Log;
- class PushNotification {
- public static function send($title, $content) {
- switch(sysConfig('is_notification')){
- case 'serverChan':
- return self::ServerChan($title, $content);
- case 'bark':
- return self::Bark($title, $content);
- default:
- return false;
- }
- }
-
- private static function ServerChan($title, $content) {
-
- $request = (new Client(['timeout' => 15]))->get('https://sc.ftqq.com/'.sysConfig('server_chan_key').'.send?text='.$title.'&desp='.urlencode($content));
- $message = json_decode($request->getBody(), true);
-
- if($request->getStatusCode() == 200){
- if(!$message['errno']){
- Helpers::addNotificationLog($title, $content, 2);
- return $message;
- }
-
- Helpers::addNotificationLog($title, $content, 2, 'admin', -1, $message? $message['errmsg'] : '未知');
- return false;
- }
-
- Log::debug('ServerChan消息推送异常:'.var_export($request, true));
- return false;
- }
-
- private static function Bark($title, $content) {
- $request = (new Client(['timeout' => 15]))->get('https://api.day.app/'.sysConfig('bark_key').'/'.$title.'/'.$content);
- $message = json_decode($request->getBody(), true);
- if($request->getStatusCode() == 200){
-
- if($message['code'] == 200){
- Helpers::addNotificationLog($title, $content, 3);
- return $message;
- }
-
- Helpers::addNotificationLog($title, $content, 3, 'admin', -1, $message);
- return false;
- }
-
- Log::debug('Bark消息推送异常:'.var_export($request, true));
- return false;
- }
- }
|