【问题标题】:PHP: Zend: Wrong scope and Google API spreadsheetPHP:Zend:错误的范围和 Google API 电子表格
【发布时间】:2010-11-19 06:48:08
【问题描述】:

我想在我的应用程序中(在 php 中)操作 Google Spreasheet,因此,我想将 google docs api 与 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/(如示例)。

如何解决这个错误?

【问题讨论】:

    标签: php zend-framework google-api zend-gdata


    【解决方案1】:

    我发现了我的错误,当您想要更新单元格时,我在 Zend 库 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']);
    

    它的工作:)

    【讨论】:

      猜你喜欢
      • 2016-10-19
      • 1970-01-01
      • 1970-01-01
      • 2015-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多