获取设备的别名报错
我是用php写的请求代码 根据你们的api 我key填了的。怎么说我没提供啊
说下我为什么要自己实现底层代码调用你们的api 你们提供的官方composer包 不好用
极光推送端返回的错误信息
{"error":{"code":7004,"message":"app_key doesn't provide"}}
我发下整体代码把
/**
* 极光推送相关api处理类
*
* Created by PhpStorm.
* User: Tom
* Date: 2019/7/16
* Time: 16:20
*/
namespace App\Utils;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\ClientException;
class Jpush{
//极光推送应用的appKey
private $app_key;
//极光推送应用的appSecret
private $app_secret;
//极光推送api的base_url
private $base_url;
//http请求超时时间
private $timeout = 5.0;
private $get_alias_url = '/v3/devices/';
//初始化极光推送的各项设置
public function __construct(){
$this->app_key = config('jp.key');
$this->app_secret = config('jp.secret');
$this->base_url = config('jp.baseurl');
}
//获取极光推送的授权token
private function getAuthToken(){
return base64_encode($this->app_key.':'.$this->app_secret);
}
/**
* 根据设备号获取别名
* @param $registrationId
*/
public function getAliasByDevice($registrationId){
return $this->sendHttp('GET',$this->get_alias_url,$registrationId);
}
//发送http请求
private function sendHttp($method,$url,$data){
$client = new Client(['timeout'=>$this->timeout]);
if(empty($method)){
return null;
}
$res = null;
//构造请求头
$headers = [
'Authorization'=> 'Basic '.$this->getAuthToken(),
'Accept'=> 'application/json',
];
//设置选项
$options = array_merge($headers,['http_errors'=>false]);
if($method=='GET'){
$url = $this->base_url.$url.$data;
$res = $client->get($url,$options);
$body = $res->getBody();
$strContent = $body->getContents();
return json_decode($strContent,true);
}
return '100';
}
}
解决了 是我代码问题。认证的代码不对 之前