DropBox PHP-API检查用户是否已登录且应用程序已获得授权

时间:2012-05-18 13:37:29

标签: php dropbox dropbox-api

我正在使用Dropbox API在Dropbox中读取和写入App文件夹的数据。当我使用AJAX将内容发布到putFile.php并从getFile.php获取内容时,重定向到DropBox-Login不起作用。我稍微更改了accountInfo.php,您将在身份验证后重定向到主页面。 我想在主页面检查用户是否登录了dropbox并且应用程序已获得授权(因为我想将用户重定向到accountInfo.php,如果他没有登录)。

提前致谢!

1 个答案:

答案 0 :(得分:1)

从我在文档中读到的内容中,这应该可以解决问题:

<?php
require_once "dropbox-sdk/Dropbox/autoload.php";
use \Dropbox as dbx;

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

    return (empty($accountInfo)) ? false : true;
}

if(!isLogged()) {
    $appInfo = dbx\AppInfo::loadFromJsonFile("INSERT_PATH_TO_JSON_CONFIG_PATH");
    $webAuth = new dbx\WebAuthNoRedirect($appInfo, "PHP-Example/1.0");

    $authorizeUrl = $webAuth->start();

    echo "1. Go to: " . $authorizeUrl . "\n";
    echo "2. Click \"Allow\" (you might have to log in first).\n";
    echo "3. Copy the authorization code.\n";
    $authCode = \trim(\readline("Enter the authorization code here: "));

    list($accessToken, $dropboxUserId) = $webAuth->finish($authCode);
    print "Access Token: " . $accessToken . "\n";
} else {
    //User is logged in
}
?>