使用访问令牌在Dropbox上传文件

时间:2016-10-21 11:00:15

标签: php codeigniter dropbox dropbox-api dropbox-php

我创建了一个项目,我希望在我的Dropbox帐户上上传文件。它在我的Dropbox帐户中成功上传。但问题是它会要求身份验证。我不想要那个身份验证弹出窗口。使用我的app_key和密码绕过该身份验证。

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

我不想要上面的弹出窗口。我怎么能这样做。

1 个答案:

答案 0 :(得分:0)

应用密钥和密钥仅识别您的应用,并且不允许访问任何Dropbox帐户。

要访问Dropbox帐户,您需要一个访问令牌(代码中oauth_tokenoauth_token_secret的组合)。访问令牌标识特定的应用程序 - 用户对,并允许在应用程序许可允许的范围内访问该帐户。

如果您只想访问自己的帐户,则可以处理该应用程序授权一次,并存储并重新使用生成的访问令牌以供将来调用。