نقطه ویرگول;

هر از گاهی از هر چیزی

هر از گاهی از هر چیزی

کوتاه کردن url با goo.gl

جمعه, ۶ اسفند ۱۳۸۹، ۰۷:۳۶ ق.ظ
گوگل یکی از بزرگترین شرکت های فعال در تمامی زمینه ها (خواستم بگم IT دیدم حتی تو خریدن گاو و گوسفند هم داره فعالیت می کنه :D) ست که توجه ویژه ای به کابرانش داره و باز توجه ویژه تری به کاربرانی که در زمینه وب فعالیت می کنن. ابزار های بسیار زیادی رو به صورت رایگان در اختیار برنامه نویس ها قرار می ده که خیلی از کارها رو برای ما راحت تر و مطمئن تر می کنه. یکی از این ابزارها کوتاه کننده ی url هستش که با نام goo.gl در اختیار کاربران قرار گرفته. تقریبن اکثر مرورگر ها بیش از ۲۰۰۰ کاراکتر رو نمایش نمی دن( بقیه اش رو حذف می کنن). البته در مرورگرهای مختلف متفاوته. مثلن در جایی می خوندم که فایرفاکس تا ۸۰هزار کاراکتر رو پشتیبانی می کنه. درواقع پروتکل http هیچ محدودیتی برای urlها نمی ذاره بلکه این مرورگر ها هستند که باید این امکان رو در خودشون جاسازی کنند.
حالا اگه تعداد کارکتر های یه نشانی بیشتر از این حرفا شد چی کار باید کرد؟ گوگل برای شما یه ابزار گذاشته که به راحتی می تونید ازش استفاده کنید و یه نشانی چند کاراکتری بگیرید.
شروع کار:
برای این کار ابتدا باید در سایت گوگل API مورد نظرتون رو فعال کنید. برای این منظور می تونید به این آدرس برید و از سرویس هایی که می بینید URL Shortener API رو فعال کنید.
گوگل به شما آدرسی به این شکل خواهد داد:
https://www.googleapis.com/urlshortener/v1/url?shortUrl=http://goo.gl/------&key=1234567890qwertyuiopahjklzxcvbnm
و مقدار key برای شما برابره با :
1234567890qwertyuiopahjklzxcvbnm
حالا این کلاس رو داشته باشید:
class GoogleUrlApi {

// Constructor
function GoogleURLAPI($key,$apiURL = 'https://www.googleapis.com/urlshortener/v1/url') {
// Keep the API Url
$this->apiURL = $apiURL.'?key='.$key;
}

// Shorten a URL
function shorten($url) {
// Send information along
$response = $this->send($url);
// Return the result
return isset($response['id']) ? $response['id'] : false;
}

// Expand a URL
function expand($url) {
// Send information along
$response = $this->send($url,false);
// Return the result
return isset($response['longUrl']) ? $response['longUrl'] : false;
}

// Send information to Google
function send($url,$shorten = true) {
// Create cURL
$ch = curl_init();
// If we're shortening a URL...
if($shorten) {
curl_setopt($ch,CURLOPT_URL,$this->apiURL);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode(array("longUrl"=>$url)));
curl_setopt($ch,CURLOPT_HTTPHEADER,array("Content-Type: application/json"));
}
else {
curl_setopt($ch,CURLOPT_URL,$this->apiURL.'&shortUrl='.$url);
}
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
// Execute the post
$result = curl_exec($ch);
// Close the connection
curl_close($ch);
// Return the result
return json_decode($result,true);
}
}

برای استفاده از این کلاس به این صورت عمل کنید:
$key = 'xhjkhzkhfuh38934hfsdajkjaf';
$googer = new GoogleURLAPI($key);
$shortDWName = $googer->shorten("http://phpdevelopers.ir");
echo $shortDWName;
خروجی این بخش به این صورت خواهد بود:
http://goo.gl/aIVcs
عکس این عمل رو هم می تونید انجام بدید. یعنی نشانی کوتاه رو بگیرید و آدرس اصلی رو بدید. به این صورت:
$longDWName = $googer->expand(http://goo.gl/aIVcs);
echo $longDWName; // returns http://phpdevelopers.ir/
ساده بود نه؟ :D
به خاطر همین چیزاست که گوگل رو دوست دارم.
نکته ای که باید دقت کنید اینه که برای تست لوکال curl حتمن باید فعال باشه. برای نصب کردن در لینوکس می تونید از این دستور استفاده کنید:
 sudo apt-get install php5-curl
تو ویندوز هم فکر می کنم باید در فایل php.ini بخش extension=php_curl.dll رو از کامنت خارج کنید (یعنی ; رو از اول خط حذف کنید)
امیدوارم به دردتون خورده باشه
موفق باشید

نظرات  (۲)

مرسی دوست عزیز امید وارم روز به روز بیشتر بشه
عالی بود

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی