10namespace Bitrix\Rest\OAuth;
12use Bitrix\Main\ArgumentException;
13use Bitrix\Main\SystemException;
14use Bitrix\Main\Text\Encoding;
15use Bitrix\Main\Web\HttpClient;
16use Bitrix\Main\Web\Json;
17use Bitrix\Rest\OAuthService;
18use Bitrix\Rest\Public\Provider;
20if(!defined(
"BITRIX_OAUTH_URL"))
23 $defaultValue = (
new Provider\OAuth\AuthorizationServerProvider())->getCurrentAuthorizationUrl();
27if(!defined(
'BITRIXREST_URL'))
29 define(
'BITRIXREST_URL', BITRIX_OAUTH_URL);
61 private const NAME_IDENTIFIER_REQUEST =
'bx24_request_id';
76 if(!is_array($additionalParams))
78 $additionalParams =
array();
81 return $additionalParams;
91 $additionalParams[
'member_id'] = \CRestUtil::getMemberId();
95 $additionalParams = \CRestUtil::signLicenseRequest($additionalParams, $this->licenseKey);
98 return $additionalParams;
116 'socketTimeout' => static::HTTP_SOCKET_TIMEOUT,
117 'streamTimeout' => static::HTTP_STREAM_TIMEOUT,
124 if (isset(
$_SERVER[
'BX24_REQUEST_ID']))
126 if (str_contains($methodName,
'?'))
135 $requestId = $separator . http_build_query([
136 static::NAME_IDENTIFIER_REQUEST => urlencode(
$_SERVER[
'BX24_REQUEST_ID'])
145 return static::SERVICE_URL . static::SERVICE_PATH . $methodName . $this->
getRequestId($methodName);
159 public function call($methodName, $additionalParams =
null, $licenseCheck =
false)
161 if ($this->clientId && $this->clientSecret)
163 $additionalParams = $this->
prepareRequest($additionalParams, $licenseCheck);
166 $httpResult = $httpClient->post(
177 return $this->
call($methodName, $additionalParams,
true);
183 'Strange answer from Bitrix Service! '
184 . static::SERVICE_URL
185 . static::SERVICE_PATH
187 . $httpClient->getStatus() .
' '
188 . implode(
" ", $httpClient->getError())
205 if(is_array($actions))
207 foreach($actions as $queryKey => $cmdData)
209 list($cmd, $cmdParams) = array_values($cmdData);
210 $batch[
'cmd'][$queryKey] = $cmd.(is_array($cmdParams) ?
'?'.http_build_query($this->
prepareRequestData($cmdParams)) :
'');
214 return $this->
call(static::METHOD_BATCH, $batch);
219 return $this->
call(static::METHOD_APPLICATION_ADD,
array(
220 "TITLE" => $applicationSettings[
"TITLE"],
221 "REDIRECT_URI" => $applicationSettings[
"REDIRECT_URI"],
222 "SCOPE" => $applicationSettings[
"SCOPE"],
228 return $this->
call(static::METHOD_APPLICATION_UPDATE,
array(
229 "CLIENT_ID" => $applicationSettings[
"CLIENT_ID"],
230 "TITLE" => $applicationSettings[
"TITLE"],
231 "REDIRECT_URI" => $applicationSettings[
"REDIRECT_URI"],
232 "SCOPE" => $applicationSettings[
"SCOPE"],
238 return $this->
call(static::METHOD_APPLICATION_DELETE,
array(
239 "CLIENT_ID" => $applicationSettings[
"CLIENT_ID"],
245 $queryFields =
array(
246 "CLIENT_ID" => $applicationSettings[
"CLIENT_ID"],
247 "VERSION" => $applicationSettings[
"VERSION"],
250 if(isset($applicationSettings[
"CHECK_HASH"]) && isset($applicationSettings[
"INSTALL_HASH"]))
252 $queryFields[
'CHECK_HASH'] = $applicationSettings[
"CHECK_HASH"];
253 $queryFields[
'INSTALL_HASH'] = $applicationSettings[
"INSTALL_HASH"];
256 if ($applicationSettings[
'BY_SUBSCRIPTION'] ===
'Y')
258 $method = static::METHOD_APPLICATION_INSTALL_SUBSCRIPTION;
262 $method = static::METHOD_APPLICATION_INSTALL;
270 return $this->
call(static::METHOD_APPLICATION_UNINSTALL,
array(
271 "CLIENT_ID" => $applicationSettings[
"CLIENT_ID"],
277 return $this->
call(static::METHOD_REST_AUTHORIZE,
array(
280 "PARAMS" => $additionalParams,
286 return $this->
call(static::METHOD_REST_CHECK,
array(
287 "TOKEN" => $accessToken,
293 return $this->
call(static::METHOD_REST_CODE,
array(
296 "PARAMS" => $additionalParams,
302 return $this->
call(static::METHOD_APPLICATION_LIST);
307 return $this->
call(static::METHOD_APPLICATION_USAGE,
array(
314 return $this->
call(static::METHOD_REST_EVENT_CALL,
array(
315 "QUERY" => $eventItems,
if($_SERVER $defaultValue['REQUEST_METHOD']==="GET" &&!empty($RestoreDefaults) && $bizprocPerms==="W" &&check_bitrix_sessid())
updateApplication(array $applicationSettings)
sendApplicationUsage(array $usage)
getRequestId(string $methodName)
installApplication(array $applicationSettings)
__construct($clientId, $clientSecret, $licenseKey)
getAuth($clientId, $scope, array $additionalParams=array())
const METHOD_APPLICATION_LIST
const METHOD_APPLICATION_ADD
prepareRequest($additionalParams, $licenseCheck=false)
const METHOD_REST_EVENT_CALL
const METHOD_APPLICATION_UNINSTALL
const METHOD_APPLICATION_STAT
const METHOD_APPLICATION_INSTALL
const HTTP_SOCKET_TIMEOUT
prepareRequestData($additionalParams)
call($methodName, $additionalParams=null, $licenseCheck=false)
const HTTP_STREAM_TIMEOUT
const METHOD_APPLICATION_USAGE
const METHOD_APPLICATION_INSTALL_SUBSCRIPTION
const METHOD_APPLICATION_VERSION_UPDATE
addApplication(array $applicationSettings)
getRequestUrl($methodName)
const METHOD_APPLICATION_VERSION_DELETE
getCode($clientId, $state, $additionalParams)
unInstallApplication(array $applicationSettings)
const METHOD_APPLICATION_DELETE
const METHOD_REST_AUTHORIZE
sendEvent(array $eventItems)
deleteApplication(array $applicationSettings)
const METHOD_APPLICATION_UPDATE
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
$_SERVER["DOCUMENT_ROOT"]