致命错误:未捕获的异常'Google_IOException'

时间:2013-03-28 10:26:01

标签: php google-api-client

我正在尝试使用php代码列出Google用户的用户。我跟着youtube tutorial并尝试了this one中提出的解决方案但是当我调用authenticate方法时,我仍然会遇到这个恼人的错误:

Fatal error: Uncaught exception 'Google_IOException' with message 'HTTP Error: (0) couldn't connect to host' in D:\xampp\htdocs\yac\proxy\lib\google-api-client\io\Google_CurlIO.php:128 Stack trace: #0 D:\xampp\htdocs\yac\proxy\lib\google-api-client\auth\Google_OAuth2.php(103): Google_CurlIO->makeRequest(Object(Google_HttpRequest)) #1 D:\xampp\htdocs\yac\proxy\lib\google-api-client\Google_Client.php(131): Google_OAuth2->authenticate(Array, NULL) #2 D:\xampp\htdocs\yac\proxy\contacts.php(36): Google_Client->authenticate() #3 {main} thrown in D:\xampp\htdocs\yac\proxy\lib\google-api-client\io\Google_CurlIO.php on line 128

这是我的PHP代码:

<?php
session_start();

require_once 'lib/google-api-client/Google_Client.php';

$client = new Google_Client();
$client->setApplicationName("Contactoos");
$client->setClientId('*************************************');
$client->setClientSecret('*********************************');
$client->setScopes(array('http://www.google.com/m8/feeds'));
$client->setRedirectUri('http://localhost/yac/proxy/contacts.php');
$client->setAccessType('online');

if(isset($_GET['code']))
{
echo "here";
    $client->authenticate();
    $_SESSION['token'] = $client->getAccessToken();
    header('location:http://localhost/yac/proxy/contacts.php');
}

if(!isset($_SESSION['token']))
{
    $url = $client->createAuthUrl();

    ?>
    <a href="<?=$url;?>"> List google contacts</a>
    <?php
}
else
{
    $client->setAccessToken($_SESSION['token']);
}

?>

正如我所说,我尝试了第二个教程中提出的解决方案但是徒劳无功。

有谁知道如何解决这个问题?

感谢。

1 个答案:

答案 0 :(得分:3)

看起来您的服务器在连接到www.googleapis.com时遇到问题。您需要检查网络连接。

查看您是否可以从该计算机访问https://www.googleapis.com/discovery/v1/apis

如果您使用代理,则需要将curl_setopt($ch, CURLOPT_PROXY, 'your-proxy-settings');添加到Google_CurlIO.php

我在curl_setopt($ch, CURLOPT_USERAGENT, $request->getUserAgent());

之后的第111行上添加了它