我正在尝试连接到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
}
}
我得到的错误如下:
Message: Error in cURL request: unable to use client certificate (no key found or wrong pass phrase?)
我注册了名为“test”的应用程序。我做错了什么?我错过了什么?
答案 0 :(得分:1)
您可以尝试在没有CURLOPT_SSL_VERIFYPEER
和CURLOPT_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美分。