3

有没有办法将电子表格 API 与 Drive API 联系起来?我的意思是,如果我有来自 Google Drive 的文件 ID,我是否可以使用相同的 ID 和相同的 oAuth 凭据切换到电子表格 API?

我正在使用 php,特别是电子表格 api 的资源很少 - 我很惊讶周围的资源如此之少。

4

2 回答 2

3

您还需要为以下范围的用户授予权限:

https://spreadsheets.google.com/feeds

两个 API 上的资源 ID 相同。我在 Drive 上的电子表格文件以0AifSjdPVs9MZdE10eXZTVHVneW9aYjJGVFMxV0VYUEE相同的 ID 可在 Spreadsheets API 上访问:

https://spreadsheets.google.com/feeds/spreadsheets/0AifSjdPVs9MZdE10eXZTVHVneW9aYjJGVFMxV0VYUEE

注意:我使电子表格公开可读,您可以使用此文件试用电子表格 API 后端。

于 2013-04-09T23:13:23.690 回答
2

这是我想出的解决方案:

  1. 获取 google-api-php-client 库和 Zend GData 库(Zend Framework 1.2,具有依赖项)。
  2. 使用 Google API Google_Oauth2Service 类来处理登录和身份验证。确保您的“范围”包括https://www.googleapis.com/auth/drive AND https://spreadsheets.google.com/feeds
  3. 一旦 oauth2 握手完成(您可以找到相关文档的详细信息),您将拥有一个令牌,它是一个 json 编码的字符串。把它变成一个 PHP 对象:$tok = json_decode([token string])
  4. 神奇之处在于:只需将令牌的访问部分提供给 Zend 库

$authsub = Zend_Gdata_AuthSub::getHttpClient($tok->access_token);
$spreadsheet_service = new Zend_Gdata_Spreadsheets($authsub);

现在您可以使用 Zend 库中记录的电子表格服务。效果很好。

于 2013-04-11T14:09:15.663 回答