para - API de Google-Acortador de URL con PHP
php qr code ejemplo (8)
Mi código está abajo. El servicio de acortamiento de URL funciona, pero no es así cuando inserto mi $POST
. ¿Alguien sabe cómo solucionar este problema mirando el código?
// This is the URL you want to shorten
$longUrl = ''http://www.mysite.com/XXXXX/XX/$_POST[''qrname'']'';
// Get API key from : http://code.google.com/apis/console/
$apiKey = ''MyAPIKey'';
$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);
echo ''Shortened URL is: ''.$json->id;
Aún no tengo suficientes puntos de reputación para comentar, pero obtuve esta multa de trabajo al reemplazar la línea:
echo ''Shortened URL is: ''.$json->id;
con:
$shortLink = get_object_vars($json);
echo "Shortened URL is: ".$shortLink[''id''];
Podría ser solo mi instalación de php, pero la línea original siguió arrojando un error interno 500 para mí.
Intenta con este código. Estoy trabajando para mi
$api_key = ''YOUR_KEY'';
$request_data = array(
''longUrl'' => ''YOUR_LONG_URL''
);
$curl_obj = curl_init(sprintf(''%s/url?key=%s'', ''https://www.googleapis.com/urlshortener/v1'', $api_key));
curl_setopt($curl_obj, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_obj, CURLOPT_POST, true);
curl_setopt($curl_obj, CURLOPT_HTTPHEADER, array(''Content-type: application/json''));
curl_setopt($curl_obj, CURLOPT_POSTFIELDS, json_encode($request_data));
curl_setopt($curl_obj, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_obj, CURLOPT_SSL_VERIFYHOST, false);
$response = curl_exec($curl_obj);
$json = json_decode($response);
curl_close($curl_obj);
var_dump($json);
die();
Intenta lo siguiente
$longUrl = ''http://www.mysite.com/XXXXX/XX/''.$_POST[''qrname''];
Lo anterior funcionará.
Tienes una llave, pero no la estás usando correctamente
Debe adjuntarlo a la url, no envíe la clave en la publicación
https://www.googleapis.com/urlshortener/v1/url?key=''.$apiKey
Consulte https://developers.google.com/url-shortener/v1/url/insert
estás pasando la variable php entre comillas simples por lo que no se analizará. pásalo entre comillas dobles como
$longUrl = "http://www.mysite.com/XXXXX/XX/$_POST[''qrname'']";
O concatinar así
$longUrl = ''http://www.mysite.com/XXXXX/XX/''.$_POST[''qrname''];
reemplace $longUrl = ''http://www.example.com/XXXXX/XX/$_POST[''qrname'']'';
con lo siguiente
$longUrl = ''http://www.example.com/XXXXX/XX/{$_POST[''qrname'']}'';
$longUrl = "http://www.xxxxxxx.com";
$postData = array(''longUrl'' => $longUrl);
$jsonData = json_encode($postData);
//4
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, ''https://www.googleapis.com/urlshortener/v1/url?key=yourappkey'');
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);
//5
$response = curl_exec($curlObj);
$json = json_decode($response);
// echo "<pre>";
// print_r($json);exit;
//6
curl_close($curlObj);
//7
if(isset($json->error)){
echo $json->error->message;
}else{
echo $json->id;
}
<?php
//URL Shortening Functions( Just copy & paste below code in your application)
function short_url($longUrl){
$apiKey = ''******************''; // put your GOOGLE API SHORTENING KEY
$postData = array(''longUrl'' => $longUrl, ''key'' => $apiKey);
$curlObj = curl_init();
$jsonData = json_encode($postData);
curl_setopt($curlObj, CURLOPT_URL, ''https://www.googleapis.com/urlshortener/v1/url?key=''.$postData[''key'']);
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);
if(isset($json->error) || $json == null){
return $longUrl; // retrun same url in case of error or null response
}else{
return $json->id; // return shorted url
}
}
// use this function here
$longUrl = ''https://www.w3schools.com/'';
echo short_url($longUrl); // print short url
// If you want to return short url to long url use below function
function long_url($shortUrl){
$apiKey = ''***********''; // put your GOOGLE API SHORTENING Key
$params = array(''shortUrl'' => $shortUrl, ''key'' => $apiKey,''projection'' => "ANALYTICS_CLICKS");
$final_url = ''https://www.googleapis.com/urlshortener/v1/url?''.http_build_query($params);
$curlObj = curl_init($final_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''));
$response = curl_exec($curlObj);
$json = json_decode($response);
curl_close($curlObj);
if(isset($json->error) || $json == null){
return $shortUrl;
}else{
return $json->longUrl;
}
}
//Function Use here
echo "<br>"; // For next line
$shortUrl = ''''; // put the short url generated from above function
echo long_url($shortUrl); // get long url
?>