2010-11-18 11 views
0

Ich möchte Google Spreadsheet in meiner Anwendung (in PHP) manipulieren, also, um dies zu tun, möchte ich die Google Docs API mit dem Zend Gdata Librairy verwenden.PHP: Zend: Falscher Umfang und Google API Spreadsheet

Ich nehme diesen Code in dem zend Probe docs, aber ich erhalte eine Fehlermeldung 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); 

Wenn ich diese Zeile entfernen, die alle gut funktionieren:

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

Mein Fehler ist „falsch Umfang "und mein Umfang während der Authentifizierung ist http://spreadsheets.google.com/feeds/spreadsheets/ (wie das Beispiel).

Wie kann ich diesen Fehler beheben?

Antwort

2

Ich fand meinen Fehler und ich fand einen Fehler in Zend librairy 1.11, wenn Sie eine Zelle aktualisieren möchten.

Also mein erster Fehler habe ich diesen Rahmen:

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

Und die gute Anwendungsbereich ist:

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

Und die Update Fehlerzelle ist, dass Zend eine PUT-Anfrage senden http in https-Protokoll, wenn Sie in unsicheren Bereich arbeiten, so dass Google dies nicht will.

Für meinen Test (es ist keine gute Lösung, aber für einen Test, es ist ok ^^), füge ich diese Zeile in der Datei Zend/Gdata/App.php in der Put-Funktion:

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

Und es ist Arbeit :)