2013-03-09 6 views
0

J'essaie de me connecter à Dropbox en tant qu'utilisateur en utilisant cURL et PHP.connexion à dropbox avec curl (login utilisateur)

$ch = curl_init(); 
$data = array(
    't'=>'hxdlvCcN7SKKcfKCvpEO8-s2', 
    'lhs_type'=>'anywhere', 
    'login_email'=>'[email protected]', 
    'password'=>'mypass', 
    'login_submit'=>1, 
    'remember_me'=>'on', 
    'login_submit_dummy'=>'Sign in' 
); 

// set cURL options and execute 
curl_setopt($ch, CURLOPT_URL, "https://www.dropbox.com/login?lhs_type=anywhere"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($data)); 
$request_token_response = curl_exec($ch);  
var_dump($request_token_response); 

Je reçois 403 avec ce texte:

It seems you tried to do something we can't verify. Did you log into a different Dropbox account in a different window? Try clicking here to go back to the page you came from, or just go home. 

Qu'est-ce que je fais mal?

+1

Y a-t-il une raison pour laquelle vous n'utilisez pas [Dropbox's Api] (https://www.dropbox.com/developers)? – Wrikken

+0

suis en utilisant api pour le téléchargement et tout et tout fonctionne bien, mais ils n'ont pas de méthodes API pour la connexion de l'utilisateur, ils envoient l'utilisateur à leur site Web pour la connexion. –

Répondre

0

Il est possible, et il existe une classe actuelle disponible pour le rendre facile. https://github.com/jakajancar/DropboxUploader/

Il est aussi facile que

require 'DropboxUploader.php'; 
$uploader = new DropboxUploader('[email protected]', 'password'); 

Le $uploader->loggedin retournera si vous êtes connecté ou non.

+0

thx cela fonctionne, j'ai dû changer de classe un peu, j'ai défini connecté à public et login() au public aussi, alors vous devez appeler la méthode login() donc require 'DropboxUploader.php'; $ uploader = nouveau DropboxUploader ('[email protected] ',' mot de passe '); $ uploader-> login(); var_dump ($ uploader-> loggedin); –

0

Je pense que vous trouverez que la valeur 't' ne peut être utilisée qu'une seule fois. Vous devez en appeler un nouveau à chaque fois que vous vous connectez.

Si vous regardez la classe suggérée dans l'autre article, vous verrez que c'est ce qu'il fait.