| Server IP : 54.233.248.239 / Your IP : 172.28.1.13 Web Server : Apache System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/vinumday2_0/vendor/irazasyed/telegram-bot-sdk/src/ |
Upload File : |
<?php
namespace Telegram\Bot;
use GuzzleHttp\Promise\PromiseInterface;
use Psr\Http\Message\ResponseInterface;
use Telegram\Bot\Exceptions\TelegramSDKException;
use Telegram\Bot\HttpClients\GuzzleHttpClient;
use Telegram\Bot\HttpClients\HttpClientInterface;
/**
* Class TelegramClient.
*/
class TelegramClient
{
/**
* @const string Telegram Bot API URL.
*/
const BASE_BOT_URL = 'https://api.telegram.org/bot';
/**
* @const int The timeout in seconds for a request that contains file uploads.
*/
const DEFAULT_FILE_UPLOAD_REQUEST_TIMEOUT = 3600;
/**
* @const int The timeout in seconds for a request that contains video uploads.
*/
const DEFAULT_VIDEO_UPLOAD_REQUEST_TIMEOUT = 7200;
/**
* @var HttpClientInterface|null HTTP Client
*/
protected $httpClientHandler;
/**
* Instantiates a new TelegramClient object.
*
* @param HttpClientInterface|null $httpClientHandler
*/
public function __construct(HttpClientInterface $httpClientHandler = null)
{
$this->httpClientHandler = $httpClientHandler ?: new GuzzleHttpClient();
}
/**
* Sets the HTTP client handler.
*
* @param HttpClientInterface $httpClientHandler
*/
public function setHttpClientHandler(HttpClientInterface $httpClientHandler)
{
$this->httpClientHandler = $httpClientHandler;
}
/**
* Returns the HTTP client handler.
*
* @return HttpClientInterface
*/
public function getHttpClientHandler()
{
return $this->httpClientHandler;
}
/**
* Returns the base Bot URL.
*
* @return string
*/
public function getBaseBotUrl()
{
return static::BASE_BOT_URL;
}
/**
* Prepares the API request for sending to the client handler.
*
* @param TelegramRequest $request
*
* @return array
*/
public function prepareRequest(TelegramRequest $request)
{
$url = $this->getBaseBotUrl().$request->getAccessToken().'/'.$request->getEndpoint();
return [
$url,
$request->getMethod(),
$request->getHeaders(),
$request->isAsyncRequest(),
];
}
/**
* Send an API request and process the result.
*
* @param TelegramRequest $request
*
* @throws TelegramSDKException
*
* @return TelegramResponse
*/
public function sendRequest(TelegramRequest $request)
{
list($url, $method, $headers, $isAsyncRequest) = $this->prepareRequest($request);
$timeOut = $request->getTimeOut();
$connectTimeOut = $request->getConnectTimeOut();
if ($method === 'POST') {
$options = $request->getPostParams();
} else {
$options = ['query' => $request->getParams()];
}
$rawResponse = $this->httpClientHandler->send($url, $method, $headers, $options, $timeOut, $isAsyncRequest, $connectTimeOut);
$returnResponse = $this->getResponse($request, $rawResponse);
if ($returnResponse->isError()) {
throw $returnResponse->getThrownException();
}
return $returnResponse;
}
/**
* Creates response object.
*
* @param TelegramRequest $request
* @param ResponseInterface|PromiseInterface $response
*
* @return TelegramResponse
*/
protected function getResponse(TelegramRequest $request, $response)
{
return new TelegramResponse($request, $response);
}
}