Получить календарь Google из ленты с волшебным печеньем - PullRequest
0 голосов
/ 05 марта 2012

Я пытаюсь получить фид из календаря Google.В настройках он установлен на общедоступный, и я действительно верю, что правильно понял электронную почту и частный файл cookie.

<html>
<head>
  <title>test</title>
</head>
<body>

  <?php
    set_include_path(get_include_path().PATH_SEPARATOR.'/usr/share/php/libzend-framework-php');
    require_once 'Zend/Loader.php';
    Zend_Loader::loadClass('Zend_Gdata');
    Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
    Zend_Loader::loadClass('Zend_Gdata_Calendar');
    Zend_Loader::loadClass('Zend_Http_Client');

    $gdataCal = new Zend_Gdata_Calendar();
    $query = $gdataCal->newEventQuery();
    $query->setUser('xxxxxx@gmail.com');
    $query->setVisibility('private-xxxxxxxxxxetc');
    $query->setProjection('full');
    $eventFeed = $gdataCal->getCalendarEventFeed($query);
    foreach ($eventFeed as $event) {
      echo $event->title->text . '<br />';
    }

  ?>
</body>
</html>

Но я получаю 400 ошибок, например:

Fatal error: Uncaught exception 'Zend_Gdata_App_HttpException' with message 'Expected response code 200, got 400
Incorrect private url.' in /usr/share/php/libzend-framework-php/Zend/Gdata/App.php:709
Stack trace:
#0 /usr/share/php/libzend-framework-php/Zend/Gdata.php(221): Zend_Gdata_App->performHttpRequest('GET', 'https://www.goo...', Array, NULL, NULL, NULL)
#1 /usr/share/php/libzend-framework-php/Zend/Gdata/App.php(875): Zend_Gdata->performHttpRequest('GET', 'https://www.goo...', Array)
#2 /usr/share/php/libzend-framework-php/Zend/Gdata/App.php(763): Zend_Gdata_App->get('https://www.goo...', NULL)
#3 /usr/share/php/libzend-framework-php/Zend/Gdata/App.php(205): Zend_Gdata_App->importUrl('https://www.goo...', 'Zend_Gdata_Cale...', NULL)
#4 /usr/share/php/libzend-framework-php/Zend/Gdata.php(162): Zend_Gdata_App->getFeed('https://www.goo...', 'Zend_Gdata_Cale...')
#5 /usr/share/php/libzend-framework-php/Zend/Gdata/Calendar.php(107): Zend_Gdata->getFeed('https://www.goo...', 'Zend_Gdata_Cale...')
#6 /var/www/gcal/index.ph in /usr/share/php/libzend-framework-php/Zend/Gdata/App.php on line 709

Что могло быть не так?

URL-адрес приватной ленты XML заканчивается на "/ basic", поэтому я попытался изменить $query->setProjection('full'); на $query->setProjection('basic'); Но это не сработало.

1 Ответ

0 голосов
/ 29 мая 2012

изменить

$query->setUser('xxxxxx@gmail.com');

на:

$query->setUser('default');

Или, если вы хотите получать события из второго календаря.Проверьте этот вопрос:

Ошибка неверного запроса календаря Zend Gdata

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