2014-01-07 75 views
0

我想連接到box-api來閱讀我的用戶在我的文件夾中的文件。我創建了文件夾並上傳了文件,然後我去了OAuth2界面以獲取API密鑰。它給了我的API密鑰,所以我粘貼在代碼中:框API新手連接問題

public function indexAction() 
{ 
    try { 
     $uri = "https://api.box.com/2.0/folders/0/items?limit=100&offset=0"; 
     $config = array(
      'adapter' => 'Zend_Http_Client_Adapter_Curl', 
      'curloptions' => array(CURLOPT_FOLLOWLOCATION => true, 
            CURLOPT_HTTPHEADER=>array("Authorization: Bearer MYKEY"), 
            CURLOPT_SSL_VERIFYPEER, false, 
            CURLOPT_USERPWD, "user:password"), 
     ); 
     $client = new Zend_Http_Client($uri, $config); 
     $response = $client->request(); 
     $text= $response->getBody(); 
    } catch (Zend_Exception $e) { 
      echo "Message: " . $e->getMessage() . "\n"; 
      // Other code to recover from the error 
    } 
} 

繼此tutorial on youtube

我得到的錯誤是:

Message: Error in cURL request: unable to use client certificate (no key found or wrong pass phrase?) 

我註冊了一個名爲「測試」的應用程序。我做錯了什麼?我錯過了什麼?

回答

0

Zend http客戶端本身的使用比使用curl適配器更好,除了用戶名和密碼不需要認證。只有從Box-API的Oauth2的授權過程中收到訪問令牌後,才能執行該操作。可以使用的zend http客戶端調用如下:

$client = new Zend_Http_Client('https://api.box.com/2.0/folders/0'); 
$client->setMethod(Zend_Http_Client::GET); 
$client->setHeaders('Authorization: Bearer '.$access_token); 
$response = $client->request()->getBody(); 

我的2美分。

1

您可能會嘗試傳遞請求而不使用CURLOPT_SSL_VERIFYPEERCURLOPT_USERPWD選項。我不認爲這些是絕對必要的 - 據我所知,Box不會進行任何客戶端證書驗證 - 並且可能會導致問題。