我已经在我的网站上设置了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;?>
工作正常。我的问题是,如果有人将同一个网址放置两次,它会给他们相同的缩短网址而不是新的唯一网址。你们中的任何人都知道可能导致这个问题的原因吗?我的编码有什么问题吗?
非常感谢任何帮助。谢谢
答案 0 :(得分:0)
这是我遇到的有趣情况。如果您使用api密钥进行身份验证,那么您传入的每个长网址确实会获得相同的缩短网址或ID。这实际上就是我想要的用例!
但是如果你使用OAUTH进行身份验证,那么你传入的每个长网都会获得一个新的唯一ID,即使它们是相同的。
当您打开和关闭OAUTH身份验证时,您可以在api资源管理器中看到此行为:
https://developers.google.com/url-shortener/v1/url/insert
我没有在任何地方看到这种情况,因此很难知道这是一个功能还是一个错误,或者我们将来会发生什么。