Autor Zpráva
David1256
Profil
Dobrý den,

snažím se zprovoznit Google Calendar API a postupuji podle návodu https://developers.google.com/google-apps/calendar/v1/developers_guide_php skončil jsem však zde https://developers.google.com/google-apps/calendar/v1/developers_guide_php#RetrievingCalendars u výpisu existujících kalendářů přihlášeného uživatele. Vytvořil jsem tento kód.

<?php
$clientLibraryPath = 'phpGoogle/library'; // začátek načtení Google API
$oldPath = set_include_path(get_include_path() . PATH_SEPARATOR . $clientLibraryPath);
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_AuthSub');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Calendar'); // konec načtení Google API
function getCurrentUrl() 
{
return  "http" . (($_SERVER["HTTPS"] == "on") ? "s://" : "://") . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
}
function getAuthSubUrl() //authentifikace uživatele (funguje)
{
  $next = getCurrentUrl();
  $scope = 'https://www.google.com/calendar/feeds/';
  $secure = false;
  $session = true;
  return Zend_Gdata_AuthSub::getAuthSubTokenUri($next, $scope, $secure,
      $session);
}
$authSubUrl = getAuthSubUrl();
echo "<a href=\"$authSubUrl\">login to your Google account</a>"; 
if(! isset($_SESSION['sessionToken']) && isset($_GET['token'])) { // po přihlášení uloží session a přes get předá token (funguje)
  $_SESSION['sessionToken'] =
      Zend_Gdata_AuthSub::getAuthSubSessionToken($_GET['token']);
}
$client = Zend_Gdata_AuthSub::getHttpClient($_SESSION['sessionToken']); // identifikace uživatele, jehož kalendáře chceme vypsat
function outputCalendarList($client) // funkce na výpis kalendářů (nefunguje)
{
  $gdataCal = new Zend_Gdata_Calendar($client);
  $calFeed = $gdataCal->getCalendarListFeed();
  echo '<h1>' . $calFeed->title->text . '</h1>';
  echo '<ul>';
  foreach ($calFeed as $calendar) {
    echo '<li>' . $calendar->title->text . '</li>';
  }
  echo '</ul>';
}
?> 

když se pak přihlásím nevypíše mi to žádný kalendář, ač mám na účtu 2 a když reloadnu stránku vyhodí to dokonce tento error:
Fatal error: Uncaught exception 'Zend_Gdata_App_AuthException' with message 'Token upgrade failed. Reason: <HTML> <HEAD> <TITLE>Token revoked.</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF" TEXT="#000000"> <H1>Token revoked.</H1> <H2>Error 403</H2> </BODY> </HTML> ' in /data16/URL/testGoogle/phpGoogle/library/Zend/Gdata/AuthSub.php:138 Stack trace: #0 /data16/URL/testGoogle/calendar.php(26): Zend_Gdata_AuthSub::getAuthSubSessionToken('1/YtQn8a6fDVYKm...') #1 {main} thrown in /data16/URL/testGoogle/phpGoogle/library/Zend/Gdata/AuthSub.php on line 138

Nevíte někdo, co s tím?

Děkuji.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: