2012-04-19 9 views
4

私はDropboxのAPIを使用してファイルをアップロードしようとしているが、コードのようにいくつかのエラーを示し、次のい:php apiを使用してファイルをDropboxにアップロードできませんか?

bootstrap.phpの

// Register a simple autoload function 
spl_autoload_register(function($class){ 
    $class = str_replace('\\', '/', $class); 
    require_once('../' . $class . '.php'); 
}); 

// Set your consumer key, secret and callback URL 
$key  = 'XXXXXXXXXXXXX'; 
$secret = 'XXXXXXXXXXXXX'; 

// Check whether to use HTTPS and set the callback URL 
$protocol = (!empty($_SERVER['HTTPS'])) ? 'https' : 'http'; 
$callback = $protocol . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 

// Instantiate the required Dropbox objects 
$encrypter = new \Dropbox\OAuth\Storage\Encrypter('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); 
$storage = new \Dropbox\OAuth\Storage\Session($encrypter); 
$OAuth = new \Dropbox\OAuth\Consumer\Curl($key, $secret, $storage, $callback); 
$dropbox = new \Dropbox\API($OAuth); 

putFile.php

// Require the bootstrap 
require_once('bootstrap.php'); 

// Create a temporary file and write some data to it 
$tmp = tempnam('/tmp', 'dropbox'); 
$data = 'This file was uploaded using the Dropbox API!'; 
file_put_contents($tmp, $data); 

// Upload the file with an alternative filename 
$put = $dropbox->putFile($tmp, 'api_upload_test.txt'); 

// Unlink the temporary file 
unlink($tmp); 

// Dump the output 
var_dump($put); 

コードで: BenTheDesigner-Dropbox

エラー: 致命的なエラー:「アプリケーションフォルダ(サンドボックス)アクセス試行に失敗しました。このアプリケーションはアプリケーションフォルダを持たないため、失敗しました。あなたのアクセスタイプは代わりに 'Dropbox'にする必要がありますか? (ステータスコード:403) 'C:\ wamp \ www \ BenTheDesigner-Dropbox-b49576c \ Dropbox \ OAuth \ Consumer \ Curl.php on line 103

Dropbox \例外:Appフォルダ(サンドボックス)アクセスこのアプリがアプリフォルダを持つように設定されていないため、試行に失敗しました。あなたのアクセスタイプは代わりに 'Dropbox'にする必要がありますか? (Status Code:403)C:\ wamp \ www \ BenTheDesigner-Dropbox-b49576c \ Dropbox \ OAuth \ Consumer \ Curl.php on line 103

私は何をすべきか分かりません。

+0

を書く:あなたが使用する必要があります両方のキーが正しい。 – Frank

答えて

7

現在、「アプリケーションタイプ」(a.k.a.サンドボックス)と「フルドロップボックス」(a.k.a.ドロップボックス)にDropbox APIアプリを登録できる「アクセスタイプ」には2種類あります。あなたは、アプリケーションを登録するときにこれを選択します。その後、アプリのオプションページにどの種類があるのか​​を確認できます。あなたがここにあなたのアプリケーションのオプションページへのリンクを見つけることができます:あなたのコードでは https://www.dropbox.com/developers/apps

を、あなたは正しいアクセスタイプを反映するために(通常はあなたの鍵と同じ場所に設定された)あなたの「ルート」を設定する必要があります。

このエラーは、あなたのアプリが完全なDropboxアクセス用に登録されていますが、代わりにコードにアプリフォルダを設定したことを意味します。

これを修正するには、ルートが設定されている場所を見つけて、「dropbox」に切り替えます。 (また、アプリケーションフォルダへのアクセスを使用する場合は、アプリケーションフォルダへのアクセス権を持つ新しいアプリを登録してそれらのキーを使用してください)

使用しているライブラリがAPIクラスの関数 "setRoot"私は私を入れているこの行のAPI.phpファイル内 https://github.com/BenTheDesigner/Dropbox/blob/master/Dropbox/API.php

+0

あなたの答えは完全に満足しています。 私のアプリケーションタイプは「フル・ドロップボックス」です。だからPLZ私はどこに私のアプリのルートディレクトリパスを見つけることができますか教えてください? – Frank

+0

am done、API.phpの次の行(45)にパスを設定しました。パブリック関数__construct(OAuth \ Consumer \ ConsumerAbstract $ OAuth、$ root = '** dropbox **') – Frank

3

変更$root='dropbox'

public function __construct(OAuth\Consumer\ConsumerAbstract $OAuth, $root = 'dropbox') 
    { 
     $this->OAuth = $OAuth; 
     $this->setRoot($root); 
    } 

をし、ウルのコードにサンドボックスが..ですので、サンドボックスを削除して、Dropboxの

関連する問題