【发布时间】:2016-08-30 11:05:40
【问题描述】:
我正在使用 PHP 的 Dropbox API,并为upload and download files from the dropbox 开发了一个小应用程序。
这在我的本地机器上运行良好(使用 WAMP),但如果我将它上传到服务器上则无法运行。
这是一个错误:
致命错误:在 /dropbox-sdk/lib/Dropbox/Curl.php:73 中出现未捕获的异常“Dropbox\Exception_NetworkIO”和消息“执行 HTTP 请求时出错:”
这是我在服务器上的 cURL 设置:
cURL support: enabled
cURL Information: 7.46.0
Age: 3
Features
AsynchDNS: No
Debug: No
GSS-Negotiate: No
IDN: Yes
IPv6: Yes
Largefile: Yes
NTLM: Yes
SPNEGO: No
SSL: Yes
SSPI: No
krb4: No
libz: Yes
CharConv: No
Protocols: dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtsp, scp, sftp, smb, smbs, smtp, smtps, telnet, tftp
Host: x86_64-pc-linux-gnu
SSL Version: OpenSSL/1.0.2e
ZLib Version: 1.2.3.4
libSSH Version: libssh2/1.2.6
我该如何解决这个问题?
编辑: 以下是我的代码:
<?php
// Include the Dropbox SDK libraries
require_once "dropbox-sdk/lib/Dropbox/autoload.php";
use \Dropbox as dbx;
// Get access token from dropbox
$appInfo = dbx\AppInfo::loadFromJsonFile("dropbox-sdk/config.json");
$webAuth = new dbx\WebAuthNoRedirect($appInfo, "PHP-Example/1.0");
$authorizeUrl = $webAuth->start();
echo "1. Go to: " . $authorizeUrl . PHP_EOL;
echo "2. Click \"Allow\" (you might have to log in first)." . PHP_EOL;
echo "3. Copy the authorization code." . PHP_EOL;
$authCode = \trim(\readline("Enter the authorization code here: "));
list($accessToken, $dropboxUserId) = $webAuth->finish($authCode);
print "Access Token: " . $accessToken . PHP_EOL;
$dbxClient = new dbx\Client($accessToken, "PHP-Example/1.0");
// Get account info of the user
$accountInfo = $dbxClient->getAccountInfo();
print_r($accountInfo);
?>
编辑:这是堆栈跟踪:
Fatal error: Uncaught exception 'Dropbox\Exception_NetworkIO' with message 'Error executing HTTP request: ' in /dropbox-sdk/lib/Dropbox/Curl.php:73
Stack trace:
#0 /dropbox-sdk/lib/Dropbox/RequestUtil.php(200): Dropbox\Curl->exec()
#1 /dropbox-sdk/lib/Dropbox/WebAuthBase.php(41): Dropbox\RequestUtil::doPostWithSpecificAuth('PHP-Example/1.0', 'Basic d25qZDV0c...', NULL, 'api.dropbox.com', '1/oauth2/token', Array)
#2 /dropbox-sdk/lib/Dropbox/WebAuthNoRedirect.php(80): Dropbox\WebAuthBase->_finish('nNHnBxvAE8qAAAA...', NULL)
#3 /getAccessTokenForDropbox.php(21): Dropbox\WebAuthNoRedirect->finish('nNHnBxvAE8qAAAA...')
#4 {main} thrown in /dropbox-sdk/lib/Dropbox/Curl.php on line 73
【问题讨论】:
-
请提供您的代码以便我们查看
-
嗨 Manuel,我已经编辑了问题并在最后添加了代码。
-
谢谢,这可能对您有所帮助:dropboxforum.com/hc/en-us/community/posts/…
-
嗨曼努埃尔,我已经尝试过这个链接,但仍然有同样的错误。我已添加 Stack Trace 以供参考。
-
看起来该堆栈跟踪中的 curl 应该有一个错误,但它对您来说是空的(在“'执行 HTTP 请求时出错:'”的末尾)。您的服务器上是否有任何东西(例如,防火墙、代理、安全软件等)可能会干扰您与 Dropbox API 的连接?您可能想尝试使用 curl 尝试直接连接到 api.dropbox.com 以开始调试。
标签: php curl dropbox dropbox-api dropbox-php