我正在开发一个PHP应用程序,我需要使用Dropbox Web服务。要求是当用户点击“与Dropbox集成”时。链接,应显示Dropbox登录弹出窗口,成功登录后,应显示其他弹出窗口,用户可在其中选择Dropbox文件夹。然后,当用户从我的自定义PHP应用程序上传文件时,该文件应存储在选定的Dropbox文件夹中。
在所有这些过程中,不应将用户从我的自定义PHP应用程序重定向。
我怎样才能做到这一点?
我是否需要为dropbox创建登录弹出窗口,或者drop box是否提供了一个?
答案 0 :(得分:0)
您是否研究过Dropbox API?
https://www.dropbox.com/developers/dropins/saver
单独使用PHP无法实现,您需要使用AJAX将数据保存到Dropbox。
答案 1 :(得分:0)
我相信您可以在此处找到有关记录用户和上传数据的所有信息:
Dropbox - Using the Core API in PHP
正如您所看到的,您应该创建一个应用程序,获取访问令牌(通过OAuth2流程)并使用此代码来代表用户发出API请求。如果您需要将您的用户保留在您的站点上,您可以让Ajax构建一个结构来进行登录,授权等调用。
基本上这些是步骤:
// Include Dropbox PHP Sdk and create a new AuthBase instance (WebAuthNoRedirect is a subclass of).
$dropboxAppAuth = new dbx\WebAuth($yourAppInfo, "examples-authorize", new dbx\ArrayEntryStore($_SESSION, 'dropbox-auth-csrf-token'););
// Get an authorize url
$authorizeUrl = $dropboxAppAuth->start();
// Invite the user to authorize your app via this url
echo "1. Go to: " . $authorizeUrl . "\n";
echo "2. Click \"Allow\" (you might have to log in first).\n";
...
// and get an access token from the GET array.
list($accessToken, $userId, $urlState) = $webAuth->finish($_GET);
// Now you need a Client instance to make you call using the API interface
$dropboxClient = new dbx\Client($accessToken, "examples-authorize");
$accountInfo = $dropboxClient->getAccountInfo();
// Get a file pointer resource from the resource you want to upload and send it using the `uploadFile()` method from the Dropbox API
$resourceFilename = 'my-data.txt';
$f = fopen($resourceFilename, "rb");
$result = $dropboxClient->uploadFile("/".$resourceFilename, dbx\WriteMode::add(), $f);
然而,在该页面的末尾,你可以找到这个基本的例子,完成并准备开始玩它。