59 lines
1.3 KiB
PHP
59 lines
1.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @author Tassos Marinos <info@tassos.gr>
|
|
* @link https://www.tassos.gr
|
|
* @copyright Copyright © 2024 Tassos All Rights Reserved
|
|
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
|
|
*/
|
|
|
|
defined('_JEXEC') or die;
|
|
|
|
use \Joomla\CMS\Http\HttpFactory;
|
|
|
|
class nrURLShortGoogle extends NRURLShortener
|
|
{
|
|
|
|
function get()
|
|
{
|
|
|
|
if (!$this->validateCredentials())
|
|
{
|
|
return false;
|
|
}
|
|
|
|
$baseURL = "https://www.googleapis.com/urlshortener/v1/url?key=".$this->service->api;
|
|
|
|
$data = '{ "longUrl": "'.$this->url.'" }';
|
|
$headers['Content-Type'] = 'application/json';
|
|
|
|
try
|
|
{
|
|
$response = HttpFactory::getHttp()->post($baseURL, $data, $headers, 5);
|
|
|
|
if ($response === null || $response->code !== 200)
|
|
{
|
|
$result = json_decode($response->body);
|
|
$this->throwError($result->error->message);
|
|
|
|
return false;
|
|
}
|
|
}
|
|
catch (RuntimeException $e)
|
|
{
|
|
$this->throwError($e->getMessage());
|
|
|
|
return false;
|
|
}
|
|
|
|
$data = json_decode($response->body);
|
|
|
|
if (!isset($data->id))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
return $data->id;
|
|
}
|
|
}
|