我想在我的应用程序中操作Google Spreasheet(在php中),所以,为了做到这一点,我想使用google docs api和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/(就像样本一样)。
如何解决此错误?
答案 0 :(得分:2)
我发现了我的错误,当你想更新一个单元格时,我在Zend librairy 1.11中发现了一个错误。
所以我的第一个错误是我把这个范围:
http://spreadsheets.google.com/feeds/spreadsheets/
好的范围是:
http://spreadsheets.google.com/feeds/
更新错误单元是Zend在不安全范围内工作时以https协议发送PUT请求http,因此Google不希望这样。
对于我的测试(这不是一个好的解决方案,但对于测试,没关系^^),我在put函数中的Zend / Gdata / App.php文件中添加了这一行:
$requestData['url'] = str_replace('https', 'http', $requestData['url']);
这是有效的:)