登录到dropbox与curl(用户登录)


login to dropbox with curl ( user login )

我正在尝试使用cURL和PHP作为用户登录Dropbox。

$ch = curl_init(); 
$data = array(
    't'=>'hxdlvCcN7SKKcfKCvpEO8-s2',
    'lhs_type'=>'anywhere',
    'login_email'=>'myemail@mail.com',
    '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 );

我得到403页与此文本:

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.

我做错了什么?

这是可能的,并且有一个当前可用的类使它变得容易。https://github.com/jakajancar/DropboxUploader/

就像

一样简单
require 'DropboxUploader.php';
$uploader = new DropboxUploader('email@address.com', 'password');

无论您是否登录,$uploader->loggedin都会返回。

我想你会发现't'值只能使用一次。你每次登录时都需要重新申请一个。

如果你看看其他帖子中建议的类,你会发现它就是这样做的。