通过curl调用google api url缩短器在php中返回HTTP 403状态

时间:2018-09-20 07:48:21

标签: php curl google-api google-url-shortener

我在致电Google urlshortener时遇到问题。我使用curl函数进行呼叫:

$url = base_url()."home/register?source=@".$userid;
$longUrl = $url;
$apiKey = 'xxxxxxxxapikeyxxxxxxx';
$postData = array('longUrl' => $longUrl, 'key' => $apiKey);
$jsonData = json_encode($postData);
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, 
'https://www.googleapis.com/urlshortener/v1/url?key='.$apiKey);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content- 
type:application/json'));
curl_setopt($curlObj, CURLOPT_POST, 1);
curl_setopt($curlObj, CURLOPT_POSTFIELDS, $jsonData);
$response = curl_exec($curlObj);
$json = json_decode($response);
curl_close($curlObj);
print_r($json);

所以我得到以下响应:

stdClass Object ( [error] => stdClass Object ( [errors] => Array ( [0] => 
stdClass Object ( [domain] => global [reason] => forbidden [message] => 
Forbidden ) ) [code] => 403 [message] => Forbidden ) )

请帮助我。

1 个答案:

答案 0 :(得分:1)

您不能再通过api键使用Google URL Shortener API。

  

从2018年3月30日开始,我们将拒绝对goo.gl URL缩短器的支持。请参阅此博客文章以了解详细的时间表和替代方法。

您应该注意,Google URL Shortener API已被Transitioning Google URL Shortener to Firebase Dynamic Links停用

他们已经开始调整API中的许多功能。我怀疑您遇到的问题是由于这个原因。

您应该切换到FireBase Dynamic links