Box API新手连接问题

时间:2014-01-07 15:35:41

标签: web-services api registration box-api

我正在尝试连接到box-api,以便在我的文件夹中读取用户的文件。我已创建文件夹并上传文件,然后我转到OAuth2界面以获取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?) 

我注册了名为“test”的应用程序。我做错了什么?我错过了什么?

2 个答案:

答案 0 :(得分:1)

您可以尝试在没有CURLOPT_SSL_VERIFYPEERCURLOPT_USERPWD选项的情况下传递请求。我不认为这些是绝对必要的 - 据我所知Box不会进行任何客户端证书验证 - 它们可能会导致问题。

答案 1 :(得分: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美分。