L'authentification sur google: OAuth2 conserve son retour 'invalid_grant'

J'ai commencé à configurer google calendar à nouveau sur mon application. J'ai presque fait une copie exacte de l'authentification code affiché à les développeurs de google ( https://developers.google.com/google-apps/calendar/instantiate ), mais je reçois l'erreur suivante:

Erreur de l'extraction de OAuth2 jeton d'accès, message: "invalid_grant'

Je suis actuellement à l'aide d'une Fourchette-CMS ( http://www.fork-cms.com ), un jeune lightweigth CMS. J'ai correctement configuré le config.php fichier de google-api-php-client. (identifiant de client, le client secret, redirect uri, clé du développement,...) et l'uri de redirection est correctement fixé sur l'api de google de la console. Mon code se présente comme suit:

<?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);
}
}
?>

Quand j'ai ouvert ce widget-page pour la première fois, je reçois adressées à google pour authentifier l'application. Quand je suis d'accord, j'ai redirigé vers ma demande et c'est le point où je veux en venir:

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
  • Il s'appelle maintenant "Réinitialiser votre client secret" au lieu de révoquer.
  • Dans mon cas, j'utilisais précédemment supprimés à partir de la console p12 fichier de clé...
InformationsquelleAutor Michiel | 2012-04-05