Authentifizierung bei Google: OAuth2 gibt weiterhin "invalid_grant" zurück

Ich habe begonnen, Google Kalender für meine neue Anwendung zu konfigurieren. Ich habe fast eine exakte Kopie des bei Google-Entwicklern angezeigten Authentifizierungscodes erstellt (https://developers.google.com/google-apps/calendar/instantiate ), aber ich bekomme immer den folgenden Fehler:

Fehler beim Abrufen des OAuth2-Zugriffstokens: 'invalid_grant'

Ich benutze derzeit Fork-CMS (http://www.fork-cms.com ), ein junges leichtes CMS. Ich habe die config.php-Datei des google-api-php-clients richtig konfiguriert. (client-id, client-secret, umleitungs-uri, entwicklungsschlüssel, ...) und die umleitungs-uri ist auf der konsole von google api richtig eingestellt. Mein Code sieht wie folgt aus:

<code><?php

/**
* This is a widget with a calendar implementation.
*
* @package       frontend
* @subpackage    events
*
* @author        Michiel Vlaminck <[email protected]>
*/
class FrontendEventsWidgetCalendar extends FrontendBaseWidget
{

    private $events = array();
    private $authUrl = array();

    /**
    * Execute the extra
    *
    * @return    void
    */
    public function execute()
    {      
        // call parent
        parent::execute();

        // load template
        $this->loadTemplate();

        // get data
        $this->getData();

        // parse
        $this->parse();
    }


    /**
    * Get the data from Google Calendar
    * This method is only executed if the template isn't cached
    *
    * @return    void
    */
    private function getData()
    {
        require_once PATH_LIBRARY . '/external/google-api-php-client/src/apiClient.php';
        require_once PATH_LIBRARY . '/external/google-api-php-client/src/contrib/apiCalendarService.php';

        $client = new apiClient();

        $service = new apiCalendarService($client);

        if (isset($_SESSION['oauth_access_token'])) {
            $client->setAccessToken($_SESSION['oauth_access_token']);
        } else {
            $token = $client->authenticate();
            $_SESSION['oauth_access_token'] = $token;
        }

        if ($client->getAccessToken()) {

            $calId = FrontendEventsModel::getCalendarId((int) $this->data['id']);
            $calId = $calId[0]['calendar_id'];

            $events = $service->events->listEvents($calId);
            $this->events = $events['items'];

            $_SESSION['oauth_access_token'] = $client->getAccessToken();

        } else {
            $this->authUrl = $client->createAuthUrl();
        }
    }


    /**
    * Parse
    *
    * @return    void
    */
    private function parse()
    {
        $this->tpl->assign('events', $this->events);
        $this->tpl->assign('authUrl', $this->authUrl);
    }
}

?>
</code>

Wenn ich diese Widget-Seite zum ersten Mal öffne, werde ich zu Google weitergeleitet, um die Anwendung zu authentifizieren. Wenn ich damit einverstanden bin, werde ich zu meiner Bewerbung weitergeleitet und an dieser Stelle erhalte ich:

<code>apiAuthException » Main

Message Error fetching OAuth2 access token, message: 'invalid_grant'
File    C:\wamp\www\Officevibes\library/external\google-api-php-client\src\auth\apiOAuth2.php
Line    105
Date    Thu, 05 Apr 2012 08:34:47 +0000
URL http://localhost/calendar?code=4/YPUpFklKvhEeTcMm4moRth3x49oe
Referring URL   (Unknown)
Request Method  GET
User-agent  Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.142 Safari/535.19
</code>

Antworten auf die Frage(6)

Ihre Antwort auf die Frage