Dropbox WebAuth () -> finish ($ authCode) не работает - PullRequest
0 голосов
/ 05 мая 2019

Я пытаюсь получить код авторизации и использовать его в функции для доступа к токену доступа.

, но я получил эту ошибку

InvalidArgumentException: у 'queryParams' неверный тип;ожидающий массив, получил строку

getAuthCode:

private function getWebAuth(){
        # Include the Dropbox SDK libraries
        $appKey = '<REDACTED>';
        $appSecret = '<REDACTED>';
        $appInfo = new dbx\AppInfo($appKey, $appSecret);
        $clientIdentifier = "ExecutiveCoatings";
        // Get the current domain protocol to use in the redirect uri
        $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
        // genertate the correct redirect uri
        $redirectUri = $protocol.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
        $redirectUri = str_replace("dropbox_start","dropbox_finish",$redirectUri);
        $csrfTokenStore = new dbx\ArrayEntryStore($_SESSION, 'dropbox-auth-csrf-token');
        $webAuth = new dbx\WebAuth($appInfo, $clientIdentifier, $redirectUri, $csrfTokenStore);
        return $webAuth;
    }

Я могу использовать функцию getAuthCode в методе dropbox_start:

public function dropbox_start()
    {

        $authorizeUrl = $this->getWebAuth()->start();
        // send the user to Dropbox authentication page
        header('Location: '.$authorizeUrl);
        exit();
    }

, а также в dropbox_finishметод, когда я устанавливаю WebAuth в WebAuthNoRedirect и использую сгенерированный код статически в разделе $ authCode, но когда я хочу получить $ authCode динамически и установить его и другие действия, это дает мне ошибку:

public function dropbox_finish()
{
    // get the accessToken from redirected uri
    $authCode  = $_GET['code'];
    list($accessToken, $dropboxUserId) = $this->getWebAuth()->finish($authCode);
    var_dump($accessToken);
    session_destroy();
    die();
}

что не так?

...