public function getHmacGetAccessToken(
        $url,
        $key,
        $secret,
        $token,
        $tokenSecret,
        array $query = array(),
        $realm = null,
        $verifier = null
    ) {
        //argument test
        Argument::i()
            //Argument 1 must be a string
            ->test(1, 'string')
            //Argument 2 must be a string
            ->test(2, 'string')
            //Argument 3 must be a string
            ->test(3, 'string')
            //Argument 4 must be a string
            ->test(4, 'string')
            //Argument 5 must be a string
            ->test(5, 'string')
            //Argument 7 must be a string or null
            ->test(7, 'string', 'null')
            //Argument 8 must be a string or null
            ->test(8, 'string', 'null');
            
        return $this->consumer($url, $key, $secret)
            //set method to get
            ->setMethodToGet()
             //set method to HMAC-SHA1
            ->setSignatureToHmacSha1()
            //when there is a realm
            ->when($realm, function ($instance) use ($realm) {
                //set the realm
                $instance->setRealm($realm);
            //when there is a verifier
            })->when($verifier, function ($instance) use ($verifier) {
                //set the verifier
                $instance->setVerifier($verifier);
            //set the request token
            })->setRequestToken($token, $tokenSecret)
            //get the token
            ->getToken($query);
    }