从Google Authorization Server获取访问令牌的每个请求都返回NULL

时间:2014-09-02 15:26:15

标签: google-oauth google-api-php-client google-drive-api google-account

我正在使用Google API Client Library for PHP一年。问题是每个请求使用存储的刷新令牌刷新OAuth2令牌或从昨天获取新的令牌失败,并且服务器响应正文为Null,代码为0!

错误:无法连接到2a00:1450:4010:c05 :: 54:网络无法访问

我强调它直到昨天才正常工作。这是堆栈跟踪:

Fatal error:  Uncaught exception 'Google_IO_Exception' with message 'Failed to connect to 2a00:1450:4010:c05::54: Network is unreachable' in /Google/IO/Curl.php:81
Stack trace:
#0 /Google/IO/Abstract.php(125): Google_IO_Curl->executeRequest(Object(Google_Http_Request))
#1 /Google/Auth/OAuth2.php(314): Google_IO_Abstract>makeRequest(Object(Google_Http_Request))
#2 /Google/Auth/OAuth2.php(259): Google_Auth_OAuth2->refreshTokenRequest(Array)
#3 /Google/Auth/OAuth2.php(233): Google_Auth_OAuth2->refreshToken('1/MbRi6CK_wtW0e...')
#4 /Google/Service/Resource.php(176): Google_Auth_OAuth2->sign(Object(Google_Http_Request))
#5 /Google/Service/Drive.php(1517): Google_Service_Resource->call('list', Array, 'Google_Service_...')
#6 /my-handler.php(377): Google_Service_Drive_Children_Resource->listCh in /Google/IO/Curl.php on line 81

更新:我发现通过我的服务器ping这个地址也失败了:

ping 2a00:1450:4010:c05::54
ping: unknown host 2a00:1450:4010:c05::54

google是否可能阻止了我的服务器?我如何要求取消阻止?

Update2:我将此地址添加到服务器的防火墙whiteList:

Allowing 2a00:1450:4010:c05::54...

Adding 2a00:1450:4010:c05::54 to csf.allow and iptables ACCEPT...
ACCEPT all opt in !lo out * 2a00:1450:4010:c05::54/128 -> ::/0 
ACCEPT all opt in * out !lo ::/0 -> 2a00:1450:4010:c05::54/128 
...Done.

但没有改变。我还要求关闭防火墙并禁用IPv6,但没有成功。

我还添加了这行代码:

curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
第78行的

/Google/IO/Curl.php以强制cURL使用IPv4,但会出现此错误:

Uncaught exception 'Google_IO_Exception'connect() timed out!' in /Google/IO/Curl.php:81

1 个答案:

答案 0 :(得分:1)

您可以尝试使用traceroute查看数据包到达的位置吗? 您是否向Google服务器提出了很多要求?