2012-05-18 2 views
3

Dropbox API를 사용하여 Dropbox의 App-folder 데이터를 읽고 쓰는 중입니다. AJAX를 사용하여 putFile.php에 내용을 POST하고 getFile.php에서 내용을 가져 오는 경우 DropBox-Login으로 리디렉션되지 않습니다. accountInfo.php를 약간 변경했는데, 인증 후에 기본 페이지로 리디렉션됩니다. 사용자가 dropbox에 로그인했는지, 앱에 권한이 있는지 여부 (사용자가 로그인하지 않은 경우 accountInfo.php로 리디렉션하려는 경우)를 확인하고 싶습니다.DropBox PHP-API 사용자가 로그인되어 있고 앱이 승인되었는지 확인합니다.

미리 감사드립니다. 나는이 문서에서 읽은이 트릭해야에서

답변

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 
} 
?> 
+0

나는이 질문에 죄송 나는 더 이상 당신의 대답을 시도 할 수없는 오래되었습니다. 하지만 어쨌든 정확 하네 그래서 내가 upvote 줄거야 :) – Dion

+0

어디에서 액세스 토큰이 제공됩니까? 함수'function isLogged()'에 다음과 같이 입력하면됩니다 : $ dbxClient = new dbx \ Client ($ accessToken, "PHP-Example/1.0"); – wti