PHP: Zend: неверный охват и электронная таблица Google API - PullRequest
0 голосов
/ 18 ноября 2010

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

Я использую этот код в примерах документов 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/ (как образец).

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

1 Ответ

2 голосов
/ 19 ноября 2010

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

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

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

И хороший охват:

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

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

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

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

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

...