Tweet

Google URL Kıstalma API'si ile goo.lg Alan Adlı Kısa URL'ler Oluşturun

uploads/20110627-151041-1.jpg 2010 yılında Google kendi URL Kısaltma (Shortener) API'sini duyurdu. Bu API URL adreslerini goo.gl domaini ile yeni bir URL oluşturarak kısaltmanıza olanak vermekte. Bu makalede Google'ın API'sini kullanarak kendi URL'lerinizi nasıl oluşturacağınızı göstereceğim.

Not:Bu API hala google labs da geliştirilmektedir. Bu da demek oluyor ki duyuru yapılmadan değişiklik yapılabilir. [...]


  • Google URL Kısaltma API ile yapabilecekleriniz şöyle:

  • Yeni kısa URL yaratmak.

  • Kısaltılan URL'ler hakkında detaylı bilgi almak. (Asıl URL'yi öğrenmek gibi)

  • Hesabınız ile kısalttığınız URL'lerin listesini almak.



Not: Google hesabınız ile kısaltmış olduğunuz URL'leri almak için Google hesabınıza ait OAuth jetonu ile authenticate olmanız gerekmektedir. Fakat bu makalede kısaltmış olduğumuz URL'leri almaktan bahsetmeyeceğiz.

API de HTTP istekleri için cURL kitaplığını kullanacağı cURL eklentisinin php.ini de aktif olup olmadığını kontrol ediniz.API ile yapacağımız İsteklede (Request) ve dönen Yanıtlarda(Response) JSON veri yapısını kullanacağız. JSON veri yapısı dönüşümleri için json_encode() ve json_decode() fonksiyonlarını kullanacağız.

Bir API Anahtarı (Key) Oluşturmak.

Google URL Kısaltma API sini kullanmak için bir API anahtarına (key) ihtiyacınız olacaktır. API anahtarını şu şekilde temin edebilirsiniz.


  • Google API Konsolunu (Console) ziyaret edin.

  • Yeni Proje Oluşturun

  • URL Kısaltma (Shortener) API'sini aktif edin.

  • Soldaki menüden Anahtarlara (Keys) tıklayın ve API Anahtarına sahipsiniz.



Not:API anahtarı olmadan sınırlı sayıda API isteği yapılabilir. Geliştirme aşamasında kullanışlı olabiliyor.

Kısa URL Yaratmak

Kısaltılmış URL Yaratmak için değerleri post etmemiz gereken URL şöyle: https://www.googleapis.com/urlshortener/v1/url?key=key

Değerleri post ederken geleneksel form alanı, yerine JSON veri yapısı ile post edeceğiz. Bu nedenle isteklerimizde(request) doğru içerik tipi başlığını (header content type) belirtmeliyiz. Genellikle gönderilen isteklerde başlık tipi application/x-www-form-urlencoded dir. Fakat biz JSON veri ler ile çalışacağımız için application/json kullanacağız.

API URL'sini ve Anahtarını Tanımlayarak Başlayalım.

Ornek 1 API Anahtarı ve API URL'sini Tanımlamak(ornek-1.php)

CODE:
<?php
define('GOOGLE_API_KEY', '[insert your key here]');
define('GOOGLE_ENDPOINT', 'https://www.googleapis.com/urlshortener/v1');
?>


Sonraki aşamada shortenUrl ismiyle bir foksiyon tanımlayacağız. Bu fonksiyon uzun URL'yi parametre olarak alacak ve yanıt olarak içerisinde longUrl ve id (kısa url) olan bir dizi döndürecek.

Ornek 2 shortenUrl() fonksiyonunu tanımlamak ve cURL bağlantısı kurmak (ornek-2.php)

CODE:
<?php
function shortenUrl($longUrl){
// initialize the cURL connection
$ch = curl_init(
sprintf('%s/url?key=%s', GOOGLE_ENDPOINT, GOOGLE_API_KEY)
);
// tell cURL to return the data rather than outputting it
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// ... more code will go here
}
?>


Bu kod ile http istekleri için cURL bağlantısını kurduk. API URL'si (GOOGLE_ENDPOINT) ve API anahtarı (GOOGLE_API_KEY) ile sapitleri ve curl_init() foksiyonu ile cURL bağlantısını hazırladık.

Ek olarak, CURLOPT_RETURNTRANSFER özelliğini true olarak set ettik. Eğer bu değişikliği yapmasaydık dönen JSON veriyi decode edemeyecektik. Çünkü dönen değer direkt olarak output verilecekti.

Sonraki aşamada istek verisini oluşturmak zorundayız. Daha önce belirttiğim gibi POST isteği JSON olarak encode edilmiş olması gerekiyor.

Yeni bir kısaltılmış URL yaratmak için bir tek parametreye ihtiyacımız olacak oda longUrl. Bu parametre ye karşılık olarak kısaltılmış URL değerini alacağız. Aşağıdaki örnek ile JSON veriyi nasıl post edeceğimizi görelim.

Örnek 3 cURL Bağlantı ve JSON Posting (ornek-3.php)

CODE:
<?php
function shortenUrl($longUrl) {
// ... other code
// create the data to be encoded into JSON
$requestData = array( 'longUrl' => $longUrl);
// change the request type to POST
curl_setopt($ch, CURLOPT_POST, true);
// set the form content type for JSON data
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
// set the post body to encoded JSON data
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestData));
// ... other code
}
?>


Bu noktada, cURL isteği gönderilmek için hazır. Artık istek işlemini yapabiliriz. Örnek 4 de bu işlemi inceleyebilirsiniz.

Örnek 4 cURL ile İstek Göndermek ve Dönen Sonucu Decode Etmek. (ornek-4.php)

CODE:
<?php
function shortenUrl($longUrl){
// ... other code
// perform the request
$result = curl_exec($ch);
curl_close($ch);
// decode and return the JSON response
return json_decode($result, true);
}
?>


Bu web servisinden JSON veri döndürdüğünde, json_decode() fonksiyonu ile bir PHP dizi (array) elde edeceğiz. Eğer ikinci parametre true girilirse PHP bir dizi yerine nesne (object) oluşturacaktır.

Not: Bu kod hata yakalama yapısını içermiyor. Bu konu hakkında detaylı bilgiyi şuradan alabilirsiniz.

Sonunda , hazırlamış olduğumuz shortenUrl() fonksiyonunu kullanacağız. Fonksiyona parametre olarak bir URL girelim ve kısaltılmış URL'mizi alalım. Bu kısım Örnek 5 de görebilirsiniz.

Örnek 5 shortenUrl() Fonksiyonunu Kullanalım ve Dönen Sonucu Yazdıralım (listing-5.php)

CODE:
<?php
$response = shortenUrl('http://www.thecoders.net');
echo sprintf(
'%s was shortened to %s',
$response['longUrl'],
$response['id']
);
?>


Kodun Tamamı

Makalemiz biterken kodumuzun aşağıdaki gibi görünmesi gerekiyor. Koda kendi API KEY'inizi girmeyi unutmayın.

Örnek 6 Kodun Tamamı (ornek-6.php)

CODE:
<?php
define('GOOGLE_API_KEY', '[insert your key here]');
define('GOOGLE_ENDPOINT', 'https://www.googleapis.com/urlshortener/v1');
function shortenUrl($longUrl)
{
// initialize the cURL connection
$ch = curl_init(
sprintf('%s/url?key=%s', GOOGLE_ENDPOINT, GOOGLE_API_KEY)
);
// tell cURL to return the data rather than outputting it
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// create the data to be encoded into JSON
$requestData = array(
'longUrl' => $longUrl
);
// change the request type to POST
curl_setopt($ch, CURLOPT_POST, true);
// set the form content type for JSON data
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
// set the post body to encoded JSON data
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestData));
// perform the request
$result = curl_exec($ch);
curl_close($ch);
// decode and return the JSON response
return json_decode($result, true);
}
$response = shortenUrl('http://www.thecoders.net');
echo sprintf(
'%s was shortened to %s',
$response['longUrl'],
$response['id']
);
?>


Özetle

Bu makalede goo.gl domaini ile kısaltılmış bir URL'yi Google URL Kısaltma Apisini kullanarak nasıl oluşturacağınızı gösterdik. Sonraki makalelerde görüşmek üzere ...


Dia
okanatabag@gmail.com
21 Haziran 2011 05:05

İlgili Olabilecek Makaleler


Yorumlar (1)





Oguzz
21 Haziran 2011 13:06
Çok beğendim makaleyi.Klavyene sağlık Okan.Doyurucu oldu bu yazı.

Ziyaretçi olarak yorum yazamazsınız. Üye olmak için tıklayın Üye iseniz giriş yapın.



MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg