Site icon SmartTutorials.net

Google URL Shortener API Service PHP Tutorial

In this tutorial I am going to update my previous tutorial on Google URL Shortener API Service PHP with some error handling. Here is my previous tutorial PHP Google URL Shortener API Service.

 

 

Create Google API key for Google URL Shortener API Service

When we are sending request (with long url to make short url) to Google URL Shortener API service, Google will authenticate our application with API key or through OAuth 2 token authentication. So we need either Google API key or Google oAuth 2.0 client ID.

To get Google API key or Google oAuth 2.0 client ID please refer my previous tutorial on How to get Google API key and Google oAuth 2.0 client ID.

 

 

Google URL Shortener API Service HTML Form

Create HTML form to get long URL from user. Here is my html form.

<form method="post">
	<div class="form-group">
		<label>Enter your URL</label>
		<textarea class="form-control" rows="5" name="url" id="url"></textarea>
		<span class="help-block has-error" id="url_error"></span>
	</div>
	<div class="form-group">
		<button type="submit" id="short_url_btn" data-loading-text="Getting Short URL..." class="btn btn-success">Get Short URL</button>
	</div>
</form>

Google URL Shortener API Service PHP Script

Here is my updated PHP curl script which makes api request to Google URL Shortener API Service, that validates our request and sends the response.
Please replace your API key in the place of ‘YOUR API KEY’.

$msg = '';
$flag = false;
try {
	if (isset($_POST['url']))
	{
		$url = $_POST['url'];
		$apiKey = 'YOUR API KEY';
		$post_data = json_encode( array( 'longUrl'=>$url ) );
		$ch= curl_init();
		$arr = array();
		array_push($arr, 'Content-Type: application/json; charset=utf-8');
		curl_setopt($ch, CURLOPT_HTTPHEADER, $arr);
		curl_setopt($ch, CURLOPT_URL,"https://www.googleapis.com/urlshortener/v1/url?key=".$apiKey);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		// we are doing a POST request
		curl_setopt($ch, CURLOPT_POST, 1);
		// adding the post variables to the request
		curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
		$output = curl_exec($ch);
		
		if(curl_errno($ch))
		{
		    throw new Exception(curl_error($ch));
		}
		$short_url = json_decode($output);
		if(isset($short_url->error)){
			throw new Exception($short_url->error->message);
		}
		$msg = $short_url->id;
		$flag = true;
		curl_close($ch);
		
	}	
} catch (Exception $e) {
	$msg = $e->getMessage();
	$flag = true;
}
?>

While generating your api key, if you set any referrer like this in the below image.

Then you must add referrer in your API curl request like this.

curl_setopt($ch, CURLOPT_REFERER, 'http://www.smarttutorials.net/');
Exit mobile version