id_registry = $id; } /** * Получение идентификатора * * @return int */ public function getID(): int { return $this->id; } /** * Получение браузера * * @return int */ public function getBrowser(): BrowserAbstract { // return $this->browser; return new \VK\Browsers\Curl; } /** * Метод получения токена аккаунта * * @return string */ public function getToken($captcha_key = null, $captcha_id = null): string { if (!empty($_ENV['ACCOUNT_TOKEN'])) { return $_ENV['ACCOUNT_TOKEN']; } else if ($this->mobile) { $this->token_access = $this->genTokenMobile($captcha_key, $this->captcha_id ?? $captcha_id); } else { $this->token_access = $this->genToken(); } return $this->token_access; } abstract protected function genToken(): string; abstract protected function genTokenMobile(string $captcha_key, int $captcha_id): string; // /** // * @param null $access_groups // * @param bool $resend // * @return mixed // * @throws VkApiException // */ // private function getTokenAccess($scope = null, $resend = false) // { // $get_url_token = Curl::getToken('https://oauth.vk.com/authorize?client_id=' . $_ENV['APP_ID'] . // '&scope=' . $_ENV['ACCESS_GROUPS'] . ($resend ? '&revoke=1' : '') . // '&response_type=token'); // echo 'https://oauth.vk.com/authorize?client_id=' . $_ENV['APP_ID'] . // '&scope=' . $_ENV['ACCESS_GROUPS'] . ($resend ? '&revoke=1' : '') . // '&response_type=token', PHP_EOL; // if ($get_url_token['body'] !== false) { // if (isset($get_url_token['header']['location'][0])) // $url_token = $get_url_token['header']['location'][0]; // else { // preg_match('!location.href = "(.*)"\+addr!s', $get_url_token['body'], $url_token); // if (!isset($url_token[1])) { // throw new VkApiException("Не получилось получить токен на этапе получения ссылки подтверждения"); // } // $url_token = $url_token[1]; // } // } else { // echo 'жопа'; // die; // } // echo $url_token, PHP_EOL; // die; // $access_token_location = Curl::getToken($url_token)['header']['location'][0]; // if (preg_match("!access_token=(.*?)&!s", $access_token_location, $access_token) != 1) // throw new Exception("Не удалось найти access_token в строке ридеректа, ошибка:" . Curl::getToken($access_token_location, null, false)['body']); // echo $url_token, PHP_EOL; // die; // return $access_token[1]; // } }