个推消息推送RestAPI版

  • 2019 年 10 月 5 日
  • 筆記

1.权鉴获取Token

 /**       * 个推获取权鉴Token       * @return bool       */      public static function getAuthToken()      {          require_once(__DIR__ . '/../../common/libs/requests/library/Requests.php');          Requests::register_autoloader();          $headers = array(              'Content-Type' => 'application/json'          );          $appID = Yii::$app->params['gt_app_id'];          $appKey = Yii::$app->params['gt_app_key'];          $timestamp = Func::getMsecTime();          $masterSecret = Yii::$app->params['gt_master_secret'];          $sign = hash('sha256',$appKey.$timestamp.$masterSecret);          $data = [              'sign' => $sign,              'timestamp' => $timestamp,              'appkey' => $appKey          ];          $jsonData = json_encode($data);          $postUrl = 'https://restapi.getui.com/v1/'.$appID.'/auth_sign';          $response = Requests::post($postUrl, $headers, $jsonData);          $postData = json_decode($response->body);          if($postData->result == 'ok'){              return $postData->auth_token;          }else{              return false;          }      }

2.向客户端推送消息

/**       * 向客户端推送消息       * @param $title       * @param $content       * @return bool       */      public static function pushMessage($title,$content)      {          require_once(__DIR__ . '/../../common/libs/requests/library/Requests.php');          Requests::register_autoloader();          $authToken = Func::getAuthToken();          $headers = array(              'Content-Type' => 'application/json',              'authtoken' => $authToken          );          $data = [              'message' => [                  'appkey' => Yii::$app->params['gt_app_key'],                  'is_offline' => false,                  'msgtype' => 'notification',              ],              //参数:link notification              'notification' => [                  'style' => [                      'type' => 0,                      'text' => $content,                      'title' => $title,                      'logourl' => 'http://bazhua.igexin.com/file/201908/upload_fe428cf5b8a24e68b3bd9aa2850ef37b.png'                  ],                  //'url' => 'http://www.baidu.com',              ],              'requestid' => Func::GenSecret(20,1)          ];          $jsontData = json_encode($data);          $response = Requests::post('https://restapi.getui.com/v1/'.Yii::$app->params['gt_app_id'].'/push_app', $headers, $jsontData);          $postData = json_decode($response->body);          if($postData->result == 'ok'){              return true;          }else{              return false;          }      }