我正在使用PHP OAuth扩展连接到Netflix API并通过GET请求提取数据。
在本地计算机上运行请求会导致成功尝试并返回正确的数据。
但是,在将请求推送到我们的"实时"服务器时,我立即遇到了 PHP OAuth 扩展失败的问题。
我正在使用带有 curl 的扩展程序的 1.2.2 版作为我的请求方法(还安装了 libcurl(。 我调用 OAuth 提取的 PHP 代码是:
$oauth = new OAuth($this->key, $this->secret);
$resource = $oauth->fetch($url, array('v' => '2.0', 'include_tms' => 'true'));
$this->_writeFile($oauth->getLastResponse());
同样,这个确切的代码在我的本地开发机器上 100% 有效(Mac 运行 OS X Lion,通过 MacPort 安装 php-oauth ......还有版本 1.2.2 ...PHP 5.3.8(。 但是,当在我们的服务器上运行时(Debian Linux,PHP 5.3.3,通过apt-get安装了php-oauth(,我收到以下错误:
PHP 致命错误:在/var/www/familymedia/application/Services/Netflix.php:23 中出现消息"发出请求失败(从对等方接收数据时失败(",并显示消息"使请求失败(从对等方接收数据时失败(">
我真的不确定该怎么处理这个错误。
一些进一步的信息:
我们目前从我们的服务器向其他 API 服务成功发出 cURL 请求,并每小时返回一次良好的信息,而不会出现问题。 但是,这些服务都没有通过OAuth进行身份验证,因此它们都不需要OAuth扩展,我直接使用php curl运行它们。
我有一种感觉,我们的实时服务器上的 php-oauth 扩展存在某种设置问题,MacPorts 在我的本地机器上安装期间"神奇地"为我解决了这个问题......但我找不到任何有帮助的安装或配置建议/说明/等。
希望有人有一个答案或一个地方来指出我进一步发现答案......
以为我会用找到的答案更新这个问题:该公司专门阻止来自 Netflix 的入站通信。 它解决了这个问题。 不是一个非常令人兴奋的答案,但就是这样。