2016-10-21 6 views
0

Dropboxアカウントにファイルをアップロードするプロジェクトを作成しました。私のDropboxアカウントに正常にアップロードされます。しかし、問題はそれが認証を求めることです。私はその認証ポップアップを望んでいません。私のapp_keyと秘密を使ってその認証をバイパスします。アクセストークンを使用してDropboxにファイルをアップロード

public function request_dropbox() 
    { 
     $params['key'] = $this->config->item("dropbox_key"); 
     $params['secret'] = $this->config->item("dropbox_secret"); 

     $this->load->library('dropbox', $params); 
     $data = $this->dropbox->get_request_token(site_url("testdropbox/access_dropbox")); 
     $this->session->set_userdata('token_secret', $data['token_secret']); 
     redirect($data['redirect']); 
    } 

public function access_dropbox() 
    { 
     $params['key'] = $this->config->item("dropbox_key"); 
     $params['secret'] = $this->config->item("dropbox_secret"); 

     $this->load->library('dropbox', $params); 

     $oauth = $this->dropbox->get_access_token($this->session->userdata('token_secret')); 

     $this->session->set_userdata('oauth_token', $oauth['oauth_token']); 
     $this->session->set_userdata('oauth_token_secret', $oauth['oauth_token_secret']); 
     redirect('testdropbox/test_dropbox'); 
    } 

public function test_dropbox() 
    { 
     $params['key'] = $this->config->item("dropbox_key"); 
     $params['secret'] = $this->config->item("dropbox_secret"); 
     $params['access'] = array('oauth_token'=>urlencode($this->session->userdata('oauth_token')), 
            'oauth_token_secret'=>urlencode($this->session->userdata('oauth_token_secret'))); 

     $this->load->library('dropbox', $params); 

     $dbobj = $this->dropbox->account(); 
     $dbpath = "Test/ABC"; 
     $filepath = $_SERVER['DOCUMENT_ROOT'].'/DropPHP-master/Desert.jpg'; 

     $this->dropbox->add($dbpath, $filepath, array('dropbox')); 
     print_r($dbobj); 
    } 

enter image description here

私は、ポップアップ上たくありません。どうやってやるの。

答えて

0

アプリキーとシークレットはあなたのアプリのみを識別し、どのDropboxアカウントにもアクセスを許可しません。

Dropboxアカウントにアクセスするには、アクセストークン(コードにoauth_tokenoauth_token_secretの組み合わせ)が必要です。アクセストークンは特定のアプリケーションとユーザーのペアを識別し、そのアカウントのアクセスをアプリの許可によって許可された範囲で可能にします。

自分のアカウントにのみアクセスしたい場合は、そのアプリ認証を一度処理し、その後の呼び出しのために結果のアクセストークンを保存して再利用することができます。

関連する問題