DropBox通过作曲家进行配置

时间:2016-08-09 05:46:25

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

大家好,我是作曲家的新手。以前我在我的codeigniter项目中手动配置了dropbox,但是我的脑袋让我现在使用composer来完成它。我已经以某种方式配置了composer并使用composer安装了dropbox。现在这是我之前使用的登录功能

      public function login() {
//          $this->CI->session->set_userdata('state', 1);
          $this->CI->session->dropbox_success = false;
          $oauth = new Dropbox_OAuth_PHP($this->CI->config->item('APP_KEY'), $this->CI->config->item('APP_SECRET'));
          $this->dropbox = new Dropbox_API($oauth);

          if ($this->CI->session->state) {

              $state = $this->CI->session->state;
          } else {
              $this->CI->session->set_userdata('state', 1);
              $state = 1;
          }
          switch ($state) {

              /* In this phase we grab the initial request tokens
                and redirect the user to the 'authorize' page hosted
                on dropbox */
              case 1 :
//                  echo "Step 1: Acquire request tokens\n";
                  $tokens = $oauth->getRequestToken();

//                  echo "<a href='".$oauth->getAuthorizeUrl(site_url())."' >Authorize</a>";
//                  header('Location: '. $oauth->getAuthorizeUrl());
                  echo "<a href=" . $oauth->getAuthorizeUrl(site_url("somePAth")) . "><img width='30px' src='" . base_url() . "somePAth'> Connect Dropbox</a>";
                  $this->CI->session->set_userdata('state', 2);
                  $this->CI->session->set_userdata('oauth_tokens', $tokens);
                  return FALSE;

              /* In this phase, the user just came back from authorizing
                and we're going to fetch the real access tokens */
              case 2 :

                  if (!$this->CI->session->oauth_tokens) {
                      $this->CI->session->set_userdata('state', 1);
                      header("Location: ?");
                  }
                  $oauth->setToken($this->CI->session->oauth_tokens);
                  $tokens = null;
                  try {
                      $tokens = $oauth->getAccessToken();
                  } catch (Exception $e) {
                      $this->CI->session->set_userdata('state', 1);
                      header("Location: ?");
                      return false;
                  }

                  $this->CI->session->set_userdata('state', 3);
                  $this->CI->session->set_userdata('oauth_tokens', $tokens);
                  header("Location: ?");
              case 3 :
//                  echo "The user is authenticated\n";

                  $this->CI->session->dropbox_success = true;
                  $oauth->setToken($this->CI->session->oauth_tokens);
                  echo "<a class='btn btn-primary float-right' href=" . base_url('somePath') . ">Disconnect Dropbox</a>";
                  return true;
          }
      }

现在我使用composer安装了Dropbox后,在完成配置后我创建了app-info.json文件并包含了dropbox要求我添加代码的代码$oauth = dbx\AppInfo::loadFromJsonFile("../config/app-info.json");代替第二个未注释的行,但它不起作用。它给我这个错误。

ERROR : Exception of type 'Error' occurred with Message: Class 'dbx\AppInfo' not found in File D:\Ampps\www\softcake\application\libraries\Dropbox.php at Line 30

有人可以指导我,我做错了什么,并将我重定向到一些解决方案,这将有助于我在我的应用程序中配置下拉框。提前致谢

0 个答案:

没有答案