google shortener api没有给出新的网址

时间:2015-03-03 20:08:12

标签: api url

我已经在我的网站上设置了google api shortner,并且当有人在我的网站上放置url时,我会让它获得新的缩短网址。这是我的代码:

if($REQUEST_METHOD=="POST"){
    if(isset($add)){

$longUrl = $url;
$apiKey = 'My api key';

$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');
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);

//change the response json string to object
$json = json_decode($response);

curl_close($curlObj);

in" my api key"我确实有一个api密钥,我确实把它放在那里,我确实在谷歌有缩短api启用。为了回应缩短的网址我使用:

<?print $json->id;?>

工作正常。我的问题是,如果有人将同一个网址放置两次,它会给他们相同的缩短网址而不是新的唯一网址。你们中的任何人都知道可能导致这个问题的原因吗?我的编码有什么问题吗?

非常感谢任何帮助。谢谢

1 个答案:

答案 0 :(得分:0)

这是我遇到的有趣情况。如果您使用api密钥进行身份验证,那么您传入的每个长网址确实会获得相同的缩短网址或ID。这实际上就是我想要的用例!

但是如果你使用OAUTH进行身份验证,那么你传入的每个长网都会获得一个新的唯一ID,即使它们是相同的。

当您打开和关闭OAUTH身份验证时,您可以在api资源管理器中看到此行为:

https://developers.google.com/url-shortener/v1/url/insert

我没有在任何地方看到这种情况,因此很难知道这是一个功能还是一个错误,或者我们将来会发生什么。