Я хочу реализовать 3 legged oauthentication в google api.
Код: –
<?php error_reporting(E_ALL); ini_set('display_errors', 1); define('REDIRECT_URI', 'http://example.com/gmail/index.php'); require_once 'Zend/Oauth/Consumer.php'; session_start(); $CONSUMER_KEY = 'xxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com'; $CONSUMER_SECRET = 'xxxxxxxxxxxxxxxxxxxx'; // Multi-scoped token. $SCOPES = array( 'https://docs.google.com/feeds/', 'https://spreadsheets.google.com/feeds/' ); $oauthOptions = array( 'requestScheme' => Zend_Oauth::REQUEST_SCHEME_HEADER, 'version' => '2.0', 'consumerKey' => $CONSUMER_KEY, 'consumerSecret' => $CONSUMER_SECRET, 'signatureMethod' => 'HMAC-SHA1', 'callbackUrl' => REDIRECT_URI, 'requestTokenUrl' => 'https://www.google.com/accounts/OAuthGetRequestToken', 'userAuthorizationUrl' => 'https://www.google.com/accounts/OAuthAuthorizeToken', 'accessTokenUrl' => 'https://www.google.com/accounts/OAuthGetAccessToken' ); $consumer = new Zend_Oauth_Consumer($oauthOptions); // When using HMAC-SHA1, you need to persist the request token in some way. // This is because you'll need the request token's token secret when upgrading // to an access token later on. The example below saves the token object as a session variable. if (!isset($_SESSION['ACCESS_TOKEN'])) { $_SESSION['REQUEST_TOKEN'] = serialize($consumer->getRequestToken(array('scope' => implode(' ', $SCOPES)))); } $approvalUrl = $consumer->getRedirectUrl(array('hd' => 'default')); echo "<a href=\"$approvalUrl\">Grant access</a>"; // $consumer->redirect(array('hd' => 'default')); if (!isset($_SESSION['ACCESS_TOKEN'])) { if (!empty($_GET) && isset($_SESSION['REQUEST_TOKEN'])) { $_SESSION['ACCESS_TOKEN'] = serialize($consumer->getAccessToken($_GET, unserialize($_SESSION['REQUEST_TOKEN']))); } } print_r($_SESSION);
Я получаю следующую ошибку
Неустранимая ошибка: исключить исключение «Zend_Oauth_Exception» с сообщением «Авторизованный токен от поставщика услуг не соответствует предоставленным сведениям о точках запроса» в /var/www/gmail/Zend/Oauth/Consumer.php:215 Трассировка стека: # 0 / var / www /gmail/index.php(58): Zend_Oauth_Consumer-> getAccessToken (Array, Object (Zend_Oauth_Token_Request)) # 1 {main} брошен в /var/www/gmail/Zend/Oauth/Consumer.php в строке 215
Заранее спасибо.