无法从 PHP Google App Engine 与 *.roblox.com 通信

Posted

技术标签:

【中文标题】无法从 PHP Google App Engine 与 *.roblox.com 通信【英文标题】:Unable to communicate with *.roblox.com from PHP Google App Engine 【发布时间】:2016-11-10 07:58:44 【问题描述】:

我已经完成了广泛的测试,启用了详细的 cURL 日志记录(不留下任何日志,给出一个通用的 cURL 错误 #7),并尝试通过 file_get_contents 使用内置处理程序。 (也有错误,见下文)似乎无论如何,如果我尝试从我的应用程序中从 roblox.com 域上的任何内容请求信息,它甚至在尝试之前都会出错。我知道这不是遥不可及的,因为多个其他站点都运行良好,而且我使用备用主机来尝试与 Google App Engine 进行的相同通信,并且它运行时没有任何问题。在这一点上,我只能得出结论,谷歌已经禁止我的应用程序与 ROBLOX 网站通信,而没有给我任何形式的指示。如果这是真的,为什么我的应用会被禁止,更重要的是,为什么我没有收到警报?

启用详细日志记录的 cURL 输出:

https://api.roblox.com/users/get-by-username?username=christbru01 CURL 失败并出现错误 #7: CURL HTTP 代码 #0 卷曲信息:0

这是生成这些的代码:

系统日志(LOG_DEBUG,(string)$newurl); syslog(LOG_WARNING,'CURL 失败,错误 #'.curl_errno($s).": ".curl_error($s)); syslog(LOG_DEBUG,'CURL HTTP 代码#'.curl_getinfo($s,CURLINFO_HTTP_CODE)); syslog(LOG_DEBUG,'CURL INFO: '.curl_getinfo($s,CURLINFO_HTTP_CONNECTCODE));

file_get_contents 输出:

file_get_contents(https://api.roblox.com/users/get-by-username?username=Christbru01):打开流失败:连接错误

这是生成此代码的代码:

echo file_get_contents("链接因信誉不足被删除");

【问题讨论】:

也许看看***.com/questions/17539509/… 我看过了,通常当 cURL 出错时它会给出一条消息,在那个问题中是“无法连接到主机”,但在我的问题中,我没有错误原因,没有错误详细信息,甚至在启用详细日志记录的情况下也没有 cURL 日志,所以我相信它更有可能与此无关。特别是因为系统表现得好像没有错误,即使它给出了错误 #7(没有原因)并且请求返回 false(cURL 失败)。 【参考方案1】:

您需要在您的实例中启用 cURL,方法是将 google_app_engine.enable_curl_lite = "1" 添加到您的 php.ini 文件中。

https://cloud.google.com/appengine/docs/php/config/php_ini

【讨论】:

已经添加了完整的 cURL,而且这并不能解释为什么 file_get_contents 不起作用。在 php.ini 中:'extension = "curl.so"'

以上是关于无法从 PHP Google App Engine 与 *.roblox.com 通信的主要内容,如果未能解决你的问题,请参考以下文章

Google App Engine PHP灵活环境中的URL处理程序

Google App Engine 远程 API 无法从本地客户端运行

Google App Engine 环境设置

建立数据库连接时出错:Google App Engine Deploy

Google App Engine 应用无法访问 Google Cloud Storage 存储分区

无法从 Terraform 创建 App Engine 应用程序:调用者没有权限,被禁止