Advertisement
Guest User

Untitled

a guest
Apr 9th, 2020
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.71 KB | None | 0 0
  1. function RestCommand($method, $params = array(), $refresh = true)
  2.     {
  3. $this->BITRIX_AUTH = $this->RefreshAuthToken();
  4.  
  5.         $queryUrl  = 'https://' . $this->DOMAIN . '/rest/' . $method;
  6.         $queryData = http_build_query(array_merge($params, array('auth' => @$this->BITRIX_AUTH['access_token'])));
  7.         $curl = curl_init();
  8.         curl_setopt_array($curl, array(
  9.             CURLOPT_POST           => 1,
  10.             CURLOPT_HEADER         => 0,
  11.             CURLOPT_RETURNTRANSFER => 1,
  12.             CURLOPT_URL            => $queryUrl,
  13.             CURLOPT_POSTFIELDS     => $queryData,
  14.         ));
  15.         $result = curl_exec($curl);
  16.         curl_close($curl);
  17.         $result = json_decode($result, 1);
  18. //         var_dump($queryUrl, $queryData);
  19. //         var_dump($result);
  20.         if ($refresh && isset($result['error']) && in_array($result['error'], array('expired_token', 'invalid_token', "NO_AUTH_FOUND", "ACCESS_DENIED", "QUERY_LIMIT_EXCEEDED"))) {
  21. //           echo "entrou";
  22. //             if (isset($result['error']) && $result['error'] == "QUERY_LIMIT_EXCEEDED") {
  23. //               echo 'muita rq';
  24.                 usleep(500);
  25. //           echo "limite 1000";
  26. //             }
  27. //             $this->BITRIX_AUTH = $this->RefreshAuthToken();
  28. //             var_dump($this->BITRIX_AUTH);
  29. //             if ($this->BITRIX_AUTH) {
  30.                 $result = $this->RestCommand($method, $params, false);
  31. //             }
  32.         }
  33.  
  34.         return $result;
  35.     }
  36.  
  37.     public function RefreshAuthToken()
  38.     {
  39.  
  40.         $auth = array();
  41.         $url = "https://";
  42.         $url .= $this->DOMAIN . "/oauth/token/?grant_type=refresh_token";
  43.         $url .= "&client_id=" . $this->CLIENT_ID;
  44.         $url .= "&client_secret=" . $this->CLIENT_SECRET;
  45.         if ($this->CONFIGS->refresh_token)
  46.             $url .= "&refresh_token=" . $this->CONFIGS->refresh_token;
  47. //         if ($this->CONFIGS->refresh_id)
  48. //             $url .= "&refresh_token=" . $this->CONFIGS->refresh_id;
  49. //         var_dump($url);
  50.         $auth = @file_get_contents($url);
  51.         $auth = json_decode($auth);
  52.         $auth = (array) $auth;
  53.      
  54.       if(empty($auth) && $this->CONFIGS->refresh_id){
  55.           $auth = array();
  56.           $url = "https://";
  57.           $url .= $this->DOMAIN . "/oauth/token/?grant_type=refresh_token";
  58.           $url .= "&client_id=" . $this->CLIENT_ID;
  59.           $url .= "&client_secret=" . $this->CLIENT_SECRET;
  60.           if ($this->CONFIGS->refresh_id){
  61.             $url .= "&refresh_token=" . $this->CONFIGS->refresh_id;
  62.           }
  63.           $auth = @file_get_contents($url);
  64.           $auth = json_decode($auth);
  65.           $auth = (array) $auth;
  66.       }
  67.      
  68.  
  69.         return $auth;
  70.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement