获取设备的别名报错

未来的VIP
2021-09-14 03:29 46 1

我是用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';
    }
}

解决了 是我代码问题。认证的代码不对 之前

1个回答

热门排序
gptbots-widget