نمونه کد استفاده از وب سرويس نوشته شده به زبان PHP

آدرس وب سرویس برای استفاده از API نسخه یک لیش

این آدرس در تمامی فراخوانی‌های وب سرویس به صورت ثابت در url وجود دارد و مشخص کننده نوع سرویس و نسخه مورد استفاده شما می‌باشد. متغیر LISH_API_URL به صورت ثابت تعریف شده و بدون علامت علامت $ استفاده می‌شود

  1. define('LISH_API_URL', 'http://lish.ir/api/v1');

نحوه فراخوانی آدرس‌های وب سرویس در لیش با استفاده از تابع زیر قابل انجام است.

در این تابع با استفاده از cURL وب سرویس فراخوانی می‌شود که $url به عنوان آدرس وب سرویس متشکل از LISH_API_URL به علاوه مسیر End Point مورد نظر می‌باشد.
متد های مورد استفاده از $method نوع متد مورد نظر استفاده شما را مشخص میکند مانند GET، POST، PUT، DELETEو PATCH
متغیر $data آرایه ای از اطلاعات مورد نیاز End point است
مقادیر headers مثل Content-Type با استفاده از متغیر $headers به وب سرویس ارسال می‌شود
برای تشخیص هویت باید یک token معتبر به وب سرویس ارسال شود که با استفاده از تابع login به دست می‌آید

  1. /**
  2. * @param string $url
  3. * @param string $method
  4. * @param array $data
  5. * @param array $headers
  6. * @param null|string $token
  7. * @return array
  8. */
  9. function callUrl($url, $method = 'GET', $data = [], $headers = [], $token=null)
  10. {
  11. $ch = curl_init();
  12. $headers = array_merge(['Content-Type: application/json'], $headers);
  13. if($token)
  14. $headers[]="Authorization: Bearer {$token}";
  15. $curlOptions = [
  16. CURLOPT_FOLLOWLOCATION => 1,
  17. CURLOPT_RETURNTRANSFER => true,
  18. CURLOPT_HTTPHEADER => $headers,
  19. CURLOPT_CONNECTTIMEOUT => 0,
  20. CURLOPT_MAXREDIRS => 10,
  21. CURLOPT_TIMEOUT => 30,
  22. CURLOPT_HEADER => 1,
  23. CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  24. ];
  25. if ($method == 'GET' && count($data)) {
  26. $url .= (strpos($url, '?') !== false ? '&' : '?') . http_build_query($data);
  27. }
  28. $curlOptions[CURLOPT_URL] = $url;
  29. if ($method !== 'GET') {
  30. $curlOptions[CURLOPT_CUSTOMREQUEST] = $method;
  31. $curlOptions[CURLOPT_POSTFIELDS] = json_encode($data);
  32. }
  33. curl_setopt_array($ch, $curlOptions);
  34. $result = curl_exec($ch);
  35. $err = curl_error($ch);
  36. $response = ['code' => null, 'header' => [], 'body' => []];
  37. if (!$err) {
  38. $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
  39. $responseHeaders = explode("\r\n", substr($result, 0, $header_size));
  40. $temp = array_shift($responseHeaders);
  41. if (preg_match("/([1-5][0-9]{2})/", $temp, $match))
  42. $response['code'] = (int)$match[1];
  43. foreach ($responseHeaders as $responseHeader) {
  44. $temp = explode(':', $responseHeader);
  45. if (count($temp) !== 2)
  46. continue;
  47. list($key, $value) = $temp;
  48. $response['header'][trim($key)] = trim($value);
  49. }
  50. $response['body'] = json_decode(substr($result, $header_size), true);
  51. }
  52. curl_close($ch);
  53. return [$err, $response];
  54. }

ورود به سایت لیش با استفاده از API و دریافت token برای درخواست های بعدی وب سرویس

  1. /**
  2. * @param string $username
  3. * @param string $password
  4. * @return null|string
  5. */
  6. function login($username, $password)
  7. {
  8. list($err, $response) = callUrl(LISH_API_URL . '/login', 'POST', ['login' => $username, 'password' => $password]);
  9. if ($err || $response['code'] !== 200)
  10. return null;
  11. return $response['body']['token'];
  12. }

کد انواع لینک در لیش. برای اطلاعات بیشتر به لینک توضیحات مراجعه کنید

برای استفاده از لینک ردیاب از متغیر TYPE_NORMAL
لینک هوشمند از TYPE_SMART
لینک تبلیغاتی از TYPE_COMMERCIAL
لینک چرخشی از TYPE_ROTATOR
و برای ساخت پیکسل ردیابی از TYPE_PIXEL می‌توانید استفاده کنید

  1. define('TYPE_NORMAL', 1);
  2. define('TYPE_SMART', 2);
  3. define('TYPE_COMMERCIAL', 3);
  4. define('TYPE_ROTATOR', 4);
  5. define('TYPE_PIXEL', 5);

نحوه کوتاه کردن لینک با وب سرویس لیش

  1. /**
  2. * @param $target
  3. * @param null $token
  4. * @param int $urlType
  5. * @param null $category
  6. * @param null $urlGroup
  7. * @return null|string
  8. */
  9. function shortenUrl($target, $token = null, $urlType = 1, $category = null, $urlGroup = null)
  10. {
  11. $data = [
  12. 'url' => $target,
  13. 'url_type' => $urlType
  14. ];
  15. if($urlGroup)
  16. $data['url_group_id'] = $urlGroup;
  17. if($category)
  18. $data['category'] = $category;
  19. list($err, $response) = callUrl(LISH_API_URL . '/shorten', 'POST', $data, [], $token);
  20. if($err|| $response['code'] !== 200)
  21. return null;
  22. return $response['body']['short'];
  23. }

نمونه کد استفاده از وب سرویس لیش