shift

کوتاه کردن آدرس ها به goo.gl بوسیله API گوگل

کوتاه کردن آدرس ها به goo.gl بوسیله API گوگل

ایمان
دسته: تکنولوژی  تگ ها: کوتاه کردن آدرس , ایجاد لینک کوتاه , چگونه goo.gl بسازیم , کوتاه کننده آدرس گوگل , ساخت لینک کوتاه

 

در سال 2010، گوگل کوتاه کننده ی آدرس خود را ارائه داد که به شما اجازه می دهد آدرس های خود را به goo.gl تغییر دهید. در این مقاله به شما نشان خواهم داد که چگونه بوسیله API گوگل، آدرس های خود را کوتاه کنید.

کوتاه کننده ی آدرس گوگل به شما اجازه خواهد داد:

  • URL کوتاه خود را بسازید
  • اطلاعاتی در مورد این آدرس کوتاه بدست آورید (مانند آدرس کامل و اطلاعات آماری)
  • یافتن لیستی از آدرس های کوتاه شده یک کاربر

نکته: برای بدست آوردن لیست آدرس های کوتاه شده، OAuth token نیاز است تا کاربر را تایید کند. علاوه بر آن، شما نیز می بایست هنگام ایجاد لینک، کاربر تایید شده باشید تا به یک اکانت متصل شوید. برای ساده کردن این آموزش، از این بخش API صرف نظر شده است.

در این مقاله، از کتابخانه cURL برای ارسال درخواست HTTP استفاده خواهیم کرد. به علاوه، از JSON برای ارسال و درخواست پاسخ ها استفاده خواهیم نمود. بنابراین از تابع های json_encode() و json_decode() – به ترتیب – استفاده خواهیم نمود.

ایجاد یک API:

برای ایجاد کوتاه کننده لینک گوگل، نیاز به یک کد API خواهید داشت. برای بدست آوردن آن، مراحل زیر را طی نمایید:

  • وارد کنسول API گوگل شوید
  • یک پروژه بسازید
  • API کوتاه کننده آدرس را فعال کنید
  • بر روی Keys از منوی سمت چپ کلیک کنید. می توانید کد را کپی و Paste کنید.

نکته: بدون داشتن کد API، تنها قادر خواهید بود تعداد محدودی لینک کوتاه کننده بسازید.

ساختن یک لینک کوتاه

برای ساختن لینک کوتاه، اطلاعات را به آدرس زیر پست کنید:

https://www.googleapis.com/urlshortener/v1/url?key=key

اما به جای روش های قدیمی مانند ساختن فرم، از JSON استفاده خواهیم کرد. برای شروع، اجازه دهید ابتدا API Key و endpoint را تعریف کنیم.

تعریف API Key و API Endpoint (فایل listing-1.php)

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

در مرحله ی بعد، تابع shortenUrl را تعریف می کنیم. این تابع، لینک بلندی که قرار است کوتاه شود را دریافت می کند و تابعی که حاوی آدرس کوتاه و بلند است را بر می گرداند.

تعریف تابع shortenUrl و آغاز کانکشن cURL (فایل listing-2.php)

<!--?php <br ?--> 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
}
?>

در اینجا،ارتباط cURL برای HTTP request آغاز می شود. آدرس کوتاه شده از endpoint و کد API ساخته شده و به عنوان آرگومان اول به curl_init ارسال می شود.

در مرحله بعد، می بایست بخش درخواست اطلاعات را ایجاد کنیم. همانگونه که قبلا گفته شد، درخواست می باید بصورت POST باشد.
برای ایجاد که لینک کوتاه شده، تنها یک پارامتر به نام longUrl کافی می باشد. کد های زیر، نحوه ی ایجاد درخواست POST را نشان می دهد.

ایجاد کانکشن cURL برای ارسال اطلاعات JSON (فایل listing-3.php)

<!--?php <br ?--> 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
}
?>

در اینجا درخواست cURL ایجاد شده است و آماده استفاده می باشد. هم اکنون می توانیم درخواست را اجرا نماییم. کدهای زیر، نحوه ایجاد را نمایش می دهند:

اجرای درخواست cURL و دکد کردن پاسخ (فایل listing-4.php)

<!--?php <br ?--> 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);
}
?>

از آنجایی که پاسخ برگشتی، بصورت JSON می باشد، برای تبدیل به آرایه PHP، می توانیم از json_docode استفاده نماییم. (مقدار true نشان دهنده ایجاد آرایه است و نه object)
در آخر نیز با استفاده از تابه shortenUrl، می توانیم آدرس را کوتاه کنیم.

اجرای shortenUrl و دریافت خروجی (فایل listing-5.php)

<!--?php <br ?--> $response = shortenUrl('http://cddc.ir');echo sprintf(
'%s was shortened to %s',
$response['longUrl'],
$response['id']
);
?>

کد کامل

کد کاملی که در این مقاله آموزش داده شد، بصورت زیر است. فراموش نکنید که کد API خود را در زیر جایگزین کنید.

کد کامل مقاله (فایل listing-6.php)

<!--?php <br ?--> 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://cddc.ir');

echo sprintf(
'%s was shortened to %s',
$response['longUrl'],
$response['id']
);
?>

ایدین
۱۳۹۵-۰۴-۲۴

سلام و خسته نباشید. من ی سوال دارم ک هرکاری کردم تاالان به جوابش نرسیدم من در سایت خودم از یک افزونه استفاده میکنم که برای فعال شدن آن این قسمت (کد API سرویس goo.gl را وارد کنید تا این قابلیت فعال گردد)باید پر کنم که نمیدونم ای کد رو از کجا باید پیدا کنم؟!ابتدا فک میکردم از سرویس هایی مثل mailerlite باید استفاده کردش و کد apI که اونجا هستشو قرار بدم که جواب ندادش. ممنون میشم کمک کنید و سپاس گذارم.

الهام شمس
۱۳۹۵-۱۲-۱۷

سلام: من از سایت ایرانی http://lish.ir استفاده میکنم ، آمارخیلی خوب از مکان، زمان و تعداد کلیکها میده و دارم باهاش کار میکنم. 4 مدل لینک ها رو کوتاه می کنه ( ردیاب، تبلیغات،چرخشی، هوشمند) این سایت یکی از معدود سایتهایی هست که آمار لینکهارو بصورت private در اختیار من میذاره.

نظر خود را بنویسید...
ارسال نظر
لغو