Google Reader Непрочитанный счетчик - PullRequest
0 голосов
/ 09 октября 2009

Я написал эту функцию, чтобы получить непрочитанное количество элементов Google Reader.

function GetUnread($sid)
{
    $url = "http://www.google.com/reader/api/0/unread-count?all=true&output=xml";
    $msg = urldecode($msg);
    $msg = stripslashes($msg);
    $msg = urlencode($msg);
    $url = $url . $msg;

    $purl = parse_url($url);
    $uri = $purl['scheme'] . "://" . $purl['host'] . $purl['path'] . "?" . $purl['query'];

    $cookie = "Name=SID;SID=" . $sid . ";Domain=.google.com;Path=/;Expires=16000000";

    $headers = array();
    array_push($headers, "GET " . $uri . " HTTP/1.0");
    array_push($headers, "Host: " . $purl['host']);
    array_push($headers, "Referer: " . $uri);
    array_push($headers, "Cookie: " . $cookie);
    array_push($headers, "");
    $headers = implode("\r\n", $headers);

    echo $headers;

    $conn = fsockopen($purl['host'], 80, $errno, $errstr, 30);
    if ($conn)
    {
        fputs($conn, $headers);
        $response = "";
        while (!feof($conn)) //Appears to loop indefinitely until feof's timeout(60)
        {
            $response .= fgets($conn, 128);
        }
        fclose($conn);
    }

    echo $response;
}

Заголовки при получении выглядят так:

GET http://www.google.com/reader/api/0/unread-count?all=true&output=xml HTTP/1.0
Host: www.google.com
Referer: http://www.google.com/reader/api/0/unread-count?all=true&output=xml
Cookie: Name=SID;SID=DQA...zA;Domain=.google.com;Path=/;Expires=16000000

Он просто сидит и после завершения загрузки строка ответа отсутствует. Это проблема с заголовками или fsockopen?

1 Ответ

0 голосов
/ 09 октября 2009

Сначала попробуйте упростить URL, который вы пытаетесь получить (попробуйте google.com). Если это возвращает ответ, есть вероятность, что может быть какая-то проблема аутентификации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...