我是oauth2的新手,这让我感到困惑,为什么我的刷新令牌请求得到"执行此操作需要SSL需要的回应"。显然,我们从Digitalocean获得了SSL。
public function refresh_token($test = false){
$url = "www.googleapis.com/oauth2/v4/token";
$credentials = $this->credentials();
$refresh_token = $credentials->refresh_token;
$client_id = $credentials->client_id;
$client_secret = $credentials->client_secret;
$redirect = base_url($credentials->redirect_url);
$data = "client_id=$client_id&client_secret=$client_secret&refresh_token=$refresh_token&grant_type=refresh_token";
$access = $this->curl_post($url,$data,array('Content-Type: application/x-www-form-urlencoded'));
if($test){
echo "<pre>";
echo $access;
die();
}
$access = json_decode($access);
if(isset($access->access_token)){
$this->admin->update(
array('access_token'=>$access->access_token),
'sheet_config',
array('status'=>1)
);
echo $access->access_token;
return true;
}else{
echo $access->error->message;
return false;
}
}
我期待新令牌的结果或像您的证书一样弄乱了一些错误,或者您需要首先使用数字海洋配置一些有关SSL的东西
我对SSL和其他东西很noob,但是我很确定我们有一个SSL由于我们运行https://
,因为在HTTP上拨打授权服务器会真的很糟糕!
此$url = "www.googleapis.com/oauth2/v4/token";
与进行$url = "http://www.googleapis.com/oauth2/v4/token"
相同;并且没有授权服务器会响应。
说,我认为您只是在URL的前部缺少 https 。
$url = "https://www.googleapis.com/oauth2/v4/token";