Error
Interface 'OAuth\Common\Http\Uri\UriInterface' not found Error thrown with message "Interface 'OAuth\Common\Http\Uri\UriInterface' not found" Stacktrace: #7 Error in /var/www/fastuser-phone/data/www/phone-996.ru/vendor/lusitanian/oauth/src/OAuth/Common/Http/Uri/Uri.php:10 #6 include in /var/www/fastuser-phone/data/www/phone-996.ru/vendor/composer/ClassLoader.php:444 #5 Composer\Autoload\includeFile in /var/www/fastuser-phone/data/www/phone-996.ru/vendor/composer/ClassLoader.php:322 #4 Composer\Autoload\ClassLoader:loadClass in [internal]:0 #3 spl_autoload_call in /var/www/fastuser-phone/data/www/phone-996.ru/vendor/lusitanian/oauth/src/OAuth/OAuth2/Service/Google.php:143 #2 OAuth\OAuth2\Service\Google:__construct in /var/www/fastuser-phone/data/www/phone-996.ru/vendor/lusitanian/oauth/src/OAuth/ServiceFactory.php:176 #1 OAuth\ServiceFactory:buildV2Service in /var/www/fastuser-phone/data/www/phone-996.ru/vendor/lusitanian/oauth/src/OAuth/ServiceFactory.php:122 #0 OAuth\ServiceFactory:createService in /var/www/fastuser-phone/data/www/phone-996.ru/oauth.php:55
Stack frames (8)
7
Error
/
vendor
/
lusitanian
/
oauth
/
src
/
OAuth
/
Common
/
Http
/
Uri
/
Uri.php
10
6
include
/
vendor
/
composer
/
ClassLoader.php
444
5
Composer
\
Autoload
\
includeFile
/
vendor
/
composer
/
ClassLoader.php
322
4
Composer
\
Autoload
\
ClassLoader
loadClass
[internal]
0
3
spl_autoload_call
/
vendor
/
lusitanian
/
oauth
/
src
/
OAuth
/
OAuth2
/
Service
/
Google.php
143
2
OAuth
\
OAuth2
\
Service
\
Google
__construct
/
vendor
/
lusitanian
/
oauth
/
src
/
OAuth
/
ServiceFactory.php
176
1
OAuth
\
ServiceFactory
buildV2Service
/
vendor
/
lusitanian
/
oauth
/
src
/
OAuth
/
ServiceFactory.php
122
0
OAuth
\
ServiceFactory
createService
/
oauth.php
55
/
var
/
www
/
fastuser-phone
/
data
/
www
/
phone-996.ru
/
vendor
/
lusitanian
/
oauth
/
src
/
OAuth
/
Common
/
Http
/
Uri
/
Uri.php
<?php
 
namespace OAuth\Common\Http\Uri;
 
use InvalidArgumentException;
 
/**
 * Standards-compliant URI class.
 */
class Uri implements UriInterface
{
    /**
     * @var string
     */
    private $scheme = 'http';
 
    /**
     * @var string
     */
    private $userInfo = '';
 
    /**
     * @var string
     */
    private $rawUserInfo = '';
 
    /**
     * @var string
     */
    private $host;
 
    /**
     * @var int
     */
    private $port = 80;
 
    /**
     * @var string
     */
    private $path = '/';
/
var
/
www
/
fastuser-phone
/
data
/
www
/
phone-996.ru
/
vendor
/
composer
/
ClassLoader.php
            }
        }
 
        // PSR-0 include paths.
        if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
            return $file;
        }
 
        return false;
    }
}
 
/**
 * Scope isolated include.
 *
 * Prevents access to $this/self from included files.
 */
function includeFile($file)
{
    include $file;
}
 
/
var
/
www
/
fastuser-phone
/
data
/
www
/
phone-996.ru
/
vendor
/
composer
/
ClassLoader.php
    }
 
    /**
     * Unregisters this instance as an autoloader.
     */
    public function unregister()
    {
        spl_autoload_unregister(array($this, 'loadClass'));
    }
 
    /**
     * Loads the given class or interface.
     *
     * @param  string    $class The name of the class
     * @return bool|null True if loaded, null otherwise
     */
    public function loadClass($class)
    {
        if ($file = $this->findFile($class)) {
            includeFile($file);
 
            return true;
        }
    }
 
    /**
     * Finds the path to the file where the class is defined.
     *
     * @param string $class The name of the class
     *
     * @return string|false The path if found, false otherwise
     */
    public function findFile($class)
    {
        // class map lookup
        if (isset($this->classMap[$class])) {
            return $this->classMap[$class];
        }
        if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
            return false;
[internal]
/
var
/
www
/
fastuser-phone
/
data
/
www
/
phone-996.ru
/
vendor
/
lusitanian
/
oauth
/
src
/
OAuth
/
OAuth2
/
Service
/
Google.php
    const SCOPE_CLASSROOM_COURSES           = 'https://www.googleapis.com/auth/classroom.courses';
    const SCOPE_CLASSROOM_COURSES_READONLY  = 'https://www.googleapis.com/auth/classroom.courses.readonly';
    const SCOPE_CLASSROOM_PROFILE_EMAILS    = 'https://www.googleapis.com/auth/classroom.profile.emails';
    const SCOPE_CLASSROOM_PROFILE_PHOTOS    = 'https://www.googleapis.com/auth/classroom.profile.photos';
    const SCOPE_CLASSROOM_ROSTERS           = 'https://www.googleapis.com/auth/classroom.rosters';
    const SCOPE_CLASSROOM_ROSTERS_READONLY  = 'https://www.googleapis.com/auth/classroom.rosters.readonly';
 
    protected $accessType = 'online';
 
    public function __construct(
        CredentialsInterface $credentials,
        ClientInterface $httpClient,
        TokenStorageInterface $storage,
        $scopes = array(),
        UriInterface $baseApiUri = null
    ) {
        parent::__construct($credentials, $httpClient, $storage, $scopes, $baseApiUri, true);
 
        if (null === $baseApiUri) {
            $this->baseApiUri = new Uri('https://www.googleapis.com/oauth2/v1/');
        }
    }
 
    public function setAccessType($accessType)
    {
        if (!in_array($accessType, array('online', 'offline'), true)) {
            throw new InvalidAccessTypeException('Invalid accessType, expected either online or offline');
        }
        $this->accessType = $accessType;
    }
 
    /**
     * {@inheritdoc}
     */
    public function getAuthorizationEndpoint()
    {
        return new Uri('https://accounts.google.com/o/oauth2/auth?access_type=' . $this->accessType);
    }
 
    /**
/
var
/
www
/
fastuser-phone
/
data
/
www
/
phone-996.ru
/
vendor
/
lusitanian
/
oauth
/
src
/
OAuth
/
ServiceFactory.php
     * @param string                $serviceName The fully qualified service name
     * @param CredentialsInterface  $credentials
     * @param TokenStorageInterface $storage
     * @param array|null            $scopes      Array of scopes for the service
     * @param UriInterface|null     $baseApiUri
     *
     * @return ServiceInterface
     *
     * @throws Exception
     */
    private function buildV2Service(
        $serviceName,
        CredentialsInterface $credentials,
        TokenStorageInterface $storage,
        array $scopes,
        UriInterface $baseApiUri = null,
        $apiVersion = ""
    ) {
        return new $serviceName(
            $credentials,
            $this->httpClient,
            $storage,
            $this->resolveScopes($serviceName, $scopes),
            $baseApiUri,
            $apiVersion
        );
    }
 
    /**
     * Resolves scopes for v2 services
     *
     * @param string  $serviceName The fully qualified service name
     * @param array   $scopes      List of scopes for the service
     *
     * @return array List of resolved scopes
     */
    private function resolveScopes($serviceName, array $scopes)
    {
        $reflClass = new \ReflectionClass($serviceName);
        $constants = $reflClass->getConstants();
/
var
/
www
/
fastuser-phone
/
data
/
www
/
phone-996.ru
/
vendor
/
lusitanian
/
oauth
/
src
/
OAuth
/
ServiceFactory.php
     */
    public function createService(
        $serviceName,
        CredentialsInterface $credentials,
        TokenStorageInterface $storage,
        $scopes = array(),
        UriInterface $baseApiUri = null,
        $apiVersion = ""
    ) {
        if (!$this->httpClient) {
            // for backwards compatibility.
            $this->httpClient = new StreamClient();
        }
 
        foreach ($this->serviceBuilders as $version => $buildMethod) {
            $fullyQualifiedServiceName = $this->getFullyQualifiedServiceName($serviceName, $version);
 
            if (class_exists($fullyQualifiedServiceName)) {
                return $this->$buildMethod(
                    $fullyQualifiedServiceName,
                    $credentials,
                    $storage,
                    $scopes,
                    $baseApiUri,
                    $apiVersion
                );
            }
        }
 
        return null;
    }
 
    /**
     * Gets the fully qualified name of the service
     *
     * @param string $serviceName The name of the service of which to get the fully qualified name
     * @param string $type        The type of the service to get (either OAuth1 or OAuth2)
     *
     * @return string The fully qualified name of the service
     */
/
var
/
www
/
fastuser-phone
/
data
/
www
/
phone-996.ru
/
oauth.php
    }
 
    Session::delete('oauth_user');
 
    $credentials = new OAuth\Common\Consumer\Credentials(
        Config::get("services.{$provider}.id"),
        Config::get("services.{$provider}.secret"),
        App::url("oauth.php?provider={$provider}")
    );
 
    $scope = isset($scopes[$provider]) ? $scopes[$provider] : array();
 
    $storage = new OAuth\Common\Storage\Session;
 
    $factory = new OAuth\ServiceFactory;
 
    // Use cURL
    // $factory->setHttpClient(new OAuth\Common\Http\Client\CurlClient);
 
    $service = $factory->createService($provider, $credentials, $storage, $scope);
 
    if ($provider === 'twitter') {
        if (empty($_GET['oauth_token'])) {
            $oauth_token = $service->requestRequestToken()->getRequestToken();
            $authUrl = $service->getAuthorizationUri(compact('oauth_token'));
        } else {
            try {
                $token = $storage->retrieveAccessToken(ucfirst($provider));
                $service->requestAccessToken(
                    @$_GET['oauth_token'],
                    @$_GET['oauth_verifier'],
                    $token->getRequestTokenSecret()
                );
            } catch(Exception $e) {
                exit('Oauth Retrieve Access Token Error.');
            }
        }
    } else {
        if (empty($_GET['code'])) {
            $authUrl = $service->getAuthorizationUri();

Environment & details:

Key Value
provider google
empty
empty
empty
Key Value
lusitanian-oauth-token Array ( )
lusitanian-oauth-state Array ( )
Key Value
HTTPS on
HTTP_HOST phone-996.ru
HTTP_X_REAL_IP 54.205.179.155
HTTP_X_FORWARDED_FOR 54.205.179.155
HTTP_X_FORWARDED_PORT 443
HTTP_X_FORWARDED_PROTO https
HTTP_CONNECTION close
HTTP_ACCEPT */*
HTTP_USER_AGENT claudebot
PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SERVER_SIGNATURE <address>Apache/2.4.56 (Debian) Server at phone-996.ru Port 443</address>
SERVER_SOFTWARE Apache/2.4.56 (Debian)
SERVER_NAME phone-996.ru
SERVER_ADDR 127.0.0.1
SERVER_PORT 443
REMOTE_ADDR 54.205.179.155
DOCUMENT_ROOT /var/www/fastuser-phone/data/www/phone-996.ru
REQUEST_SCHEME https
CONTEXT_PREFIX
CONTEXT_DOCUMENT_ROOT /var/www/fastuser-phone/data/www/phone-996.ru
SERVER_ADMIN admin@phone-996.ru
SCRIPT_FILENAME /var/www/fastuser-phone/data/www/phone-996.ru/oauth.php
REMOTE_PORT 35298
GATEWAY_INTERFACE CGI/1.1
SERVER_PROTOCOL HTTP/1.0
REQUEST_METHOD GET
QUERY_STRING provider=google
REQUEST_URI /oauth.php?provider=google
SCRIPT_NAME /oauth.php
PHP_SELF /oauth.php
REQUEST_TIME_FLOAT 1710846219.2337
REQUEST_TIME 1710846219
empty
0. Whoops\Handler\PrettyPageHandler