php - 在 XAMPP/Windows 7 上运行的 Google Voice "APIs"的 cURL 问题

标签 php windows curl xampp google-voice

我正在使用 aaronpk 的 Google Voice APIs在 Google Voice 中发送和接收 SMS 消息。我取消了 php.ini 中“extension=php_curl.dll”行的注释,并确认 cURL 正在运行。我现在被困在这一点上,并且不断收到此错误:

Uncaught exception 'Exception' with message 'Could not parse for GALX token'

我已经检查了所有基本的东西。该帐户的用户名和密码正确。我唯一能看到的是 cURL 没有写入 cookie 文件。

我知道脚本默认有 cookiejar/cookiefile 的 Linux 路径。我试过将其更改为 Windows 目录,并包括完整路径。我目前使用的代码片段是:

$this->_cookieFile = dirname(__FILE__) . "\cookies.txt";

即使修改了此代码,脚本也不会写入 cookies.txt 文件。

我已将这些脚本上传到 Linux 主机,它们运行良好,向我证明这是一个 Windows 问题。遗憾的是,我们没有用于生产环境的 Linux 服务器。

我正在寻找任何指导以使其在 Windows 中正常工作。现在我正在运行 XAMPP 的 Windows 7 机器上进行开发。生产环境可能是 Windows 2008 Server。

如有任何帮助,我们将不胜感激!

最佳答案

我知道这个已经很老了……但是分享一个答案仍然很好,是吗?

更改 cookie 文件的路径很好,但这里的问题是 cURL 尝试(但失败)验证 google 的 SSL 证书。可以找到两种解决方案here (我在 the accepted answer for this other SO question 中找到了该链接)

出于测试目的,我认为可以使用快速而肮脏的解决方案(盲目接受所有 SSL 证书而不进行验证)。 您需要将以下行与其他 curl_setopt 行一起插入到 GoogleVoice 类构造函数中

curl_setopt($this->_ch, CURLOPT_SSL_VERIFYPEER, FALSE);

对于生产代码,我会验证证书。我提供的第一个链接介绍了查找和保存证书。假设证书与 GoogleVoice.php 位于同一目录中,您将插入以下行

curl_setopt($this->_ch, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt($this->_ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($this->_ch, CURLOPT_CAINFO, getcwd().'\BuiltinObjectToken-VerisignClass3PublicPrimaryCertificationAuthority.crt');

我不是 cURL 专家,所以我不能说是否有另一种方法来验证 SSL 证书(或者为什么 Linux 主机不需要它。)这应该是所有需要更改的aaronpk 的 Google Voice API 在 XAMPP 上运行

关于php - 在 XAMPP/Windows 7 上运行的 Google Voice "APIs"的 cURL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4190308/

相关文章:

php - 从多个数组插入相同的查询

php - 使用 POST 的异步 cURL

php - 在 Yii 应用程序中的所有文本字段上添加默认类

linux - curl 从第一次尝试开始就不起作用

php - 使用/发送 POST 数据时的 libcurl C 问题(不是 C++)

php - 如何阻止 URL 查询字符串重复?

c++ - 如何在 Windows 中通过鼠标 Hook 设置光标位置?

windows - 如何拦截/重写 Windows ODBC 调用?

c++ - 某些机器上 OpenGL 中的黑屏(PIXELFORMATDESCRIPTOR/SwapBuffer?)

php - 通过代理服务器的 SSL 连接