Exemplo n.º 1
0
 public function getBitrix24(&$arAccessData, &$btokenRefreshed, &$errorMessage, $arScope = array())
 {
     $btokenRefreshed = null;
     $obB24App = new \Bitrix24\Bitrix24();
     if (!is_array($arScope)) {
         $arScope = array();
     }
     if (!in_array('user', $arScope)) {
         $arScope[] = 'user';
     }
     $obB24App->setApplicationScope($arScope);
     $obB24App->setApplicationId(APP_ID);
     $obB24App->setApplicationSecret(APP_SECRET_CODE);
     // set user-specific settings
     $obB24App->setDomain($arAccessData['domain']);
     $obB24App->setMemberId($arAccessData['member_id']);
     $obB24App->setRefreshToken($arAccessData['refresh_token']);
     $obB24App->setAccessToken($arAccessData['access_token']);
     try {
         $resExpire = $obB24App->isAccessTokenExpire();
     } catch (\Exception $e) {
         $errorMessage = $e->getMessage();
         // cnLog::Add('Access-expired exception error: '. $error);
     }
     if ($resExpire) {
         // cnLog::Add('Access - expired');
         $obB24App->setRedirectUri(APP_REG_URL);
         try {
             $result = $obB24App->getNewAccessToken();
         } catch (\Exception $e) {
             $errorMessage = $e->getMessage();
             // cnLog::Add('getNewAccessToken exception error: '. $error);
         }
         if ($result === false) {
             $errorMessage = 'access denied';
         } elseif (is_array($result) && array_key_exists('access_token', $result) && !empty($result['access_token'])) {
             $arAccessData['refresh_token'] = $result['refresh_token'];
             $arAccessData['access_token'] = $result['access_token'];
             $obB24App->setRefreshToken($arAccessData['refresh_token']);
             $obB24App->setAccessToken($arAccessData['access_token']);
             // \cnLog::Add('Access - refreshed');
             $btokenRefreshed = true;
         } else {
             $btokenRefreshed = false;
         }
     } else {
         $btokenRefreshed = false;
     }
     return $obB24App;
 }