0

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

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);
    }

在此处输入图像描述

我不想要上面的弹出窗口。我怎样才能做到这一点。

4

1 回答 1

0

应用密钥和密钥仅用于识别您的应用,不能访问任何 Dropbox 帐户。

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

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

于 2016-10-21T17:27:10.477 回答