2015-11-08 86 views
0

我運行的是其用戶訪問的服務,用於生成隨後通過電子郵件發送給他們的PDF文檔。我正在探索另一種交付路線 - 直接在他們指定的Dropbox文件夾中彈出準備好的文檔。用於文件上傳的Dropbox核心API

經過一番研究後,我發現Dropbox API,然後與他們的「探險家」here玩。檢查它們生成的cURL以執行文件上傳,我發現它可以很容易地通過一個PHP來完成。創建一個新的應用程序後,我然後寫了一個小PHP腳本

$headers = array('Authorization: Bearer ul...', 
        'Content-Type: application/octet-stream', 
        'Dropbox-API-Arg: {"path":"/test.txt","mode":"add"}'); 
$data = 'Betty bought a bit of butter'; 

$ch = curl_init('https://content.dropboxapi.com/2-beta-2/files/upload/'); 
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers); 
curl_setopt($ch,CURLOPT_POST,true); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$data); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
$response = curl_exec($ch); 
curl_close($ch); 
echo $response; 

在運行該腳本一切工作只是完美 - 有問題的文件在我的Dropbox打開了在幾分之一秒。

所有非常好。但是,我與Dropbox的API我的頭幾分鐘,有很多,我不明白這裏

  • 是我上面的盲目模仿他們的探險家樣本代碼做文件上傳正確的方式寫的代碼?
  • 就我而言,我的服務的用戶必須向我提供一個有效的應用令牌,我可以在Authorization:Bearer...位以上使用。我假設這個令牌限制我只在其應用程序文件夾的範圍內工作?當然,他們不願意交出讓我用他們的Dropbox做什麼的令牌。 *不用說 - 這將取決於他們將「App」權限類型配置爲應用程序文件夾

我更欣賞任何反饋我可以得到我的做法 - 尤其是在它的缺陷 - 從那些誰知道Dropbox的API比我

回答

1

Dropbox的API瀏覽器更好地使用新的Dropbox API v2,它剛剛出來beta版。你可以找到的官方文件,包括捲曲例子,在這裏:

https://www.dropbox.com/developers/documentation/http#documentation-files-upload

只要你使用它作爲記錄都在這裏,(例如,你應該使用//2,而不是現在/ 2 beta-2 /),應該沒問題。

關於權限,有幾個從挑(儘管API第2版目前只支持應用程序文件夾,完整的Dropbox),並允許由開發人員選擇當應用程序被註冊:

https://www.dropbox.com/developers/reference/devguide#app-permissions

用戶的Dropbox帳戶鏈接到應用程序後,您的應用程序訪問令牌受限於應用程序的許可。

就你而言,這聽起來像應用程序文件夾的權限就足夠了。