1

我正在使用 OAuth 2.0 访问 Dropbox,它会在成功验证用户身份后获得访问令牌。成功验证用户身份后,我被困在拥有授权码的成功页面上。如何重定向到我的本地主机并将其转换为访问令牌?我正在使用 php 进行开发。

$appInfo = dbx\AppInfo::loadFromJsonFile("config.json");
$webAuth = new dbx\WebAuthNoRedirect($appInfo, "PHP-Example/1.0");

$authorizeUrl = $webAuth->start();  
//echo $authorizeUrl;
header("Location:$authorizeUrl");

//$authCode = \trim(\readline("Enter the authorization code here: "));
$authCode = $_GET;
list($accessToken, $dropboxUserId) = $webAuth->finish($authcode);

print "Access Token: " . $accessToken . "\n";

$dbxClient = new dbx\Client($accessToken, "PHP-Example/1.0");
$accountInfo = $dbxClient->getAccountInfo();
print_r($accountInfo);
4

1 回答 1

6

您正在使用WebAuthNoRedirect,它不会重定向回您的应用程序。您需要使用WebAuth确实会进行重定向)。如果您查看web-file-browser.phpPHP SDK 下载中的示例,您将看到如下所示的示例:

function getWebAuth()
{
    list($appInfo, $clientIdentifier, $userLocale) = getAppConfig();
    $redirectUri = getBaseUrl()."/dropbox-auth-finish";
    $csrfTokenStore = new dbx\ArrayEntryStore($_SESSION, 'dropbox-auth-csrf-token');
    return new dbx\WebAuth($appInfo, $clientIdentifier, $redirectUri, $csrfTokenStore, $userLocale);
}

我将从该示例开始,因为它是一个完整的端到端 Web 应用程序。

于 2013-07-24T17:33:21.597 回答