PHP: Zend: неправильная область видимости и таблица API Google

Я хочу управлять таблицей Google Spreasheet в своем приложении (на php), поэтому для этого я хочу использовать api документации Google с библиотекой zend gdata.

Я использую этот код в примерах документации zend, но получаю сообщение об ошибке 500:

$_SESSION['docsSampleSessionToken'] = Zend_Gdata_AuthSub::getAuthSubSessionToken($_GET['token']);
$client = Zend_Gdata_AuthSub::getHttpClient($_SESSION['docsSampleSessionToken']);
$gdClient = new Zend_Gdata_Spreadsheets($client);
$feed = $gdClient->getSpreadsheetFeed();
$currKey = explode('/', $feed->entries[0]->id->text);
$query = new Zend_Gdata_Spreadsheets_DocumentQuery();
$query->setSpreadsheetKey($currKey);
$feed = $gdClient->getWorksheetFeed($query);

Когда я удаляю эту строку, все работает нормально:

$feed = $gdClient->getWorksheetFeed($query);

Моя ошибка - "неправильная область действия", и моя область действия во время аутентификации - http://spreadsheets.google.com/feeds/spreadsheets/ (как в образце).

Как устранить эту ошибку?


person Kiva    schedule 18.11.2010    source источник


Ответы (1)


Я обнаружил свою ошибку, и я обнаружил ошибку в Zend librairy 1.11, когда вы хотите обновить ячейку.

Итак, моя первая ошибка - я поставил эту область:

http://spreadsheets.google.com/feeds/spreadsheets/

И хороший размах:

http://spreadsheets.google.com/feeds/

И ячейка с ошибкой обновления заключается в том, что Zend отправляет HTTP-запрос PUT по протоколу https, когда вы работаете в незащищенной области, поэтому Google этого не хочет.

Для моего теста (это не очень хорошее решение, но для теста все в порядке ^^) я добавляю эту строку в файл Zend / Gdata / App.php в функцию put:

$requestData['url'] = str_replace('https', 'http', $requestData['url']);

И это работа :)

person Kiva    schedule 18.11.2010