是否可以使用谷歌驱动器API与电子表格API


Is it possible to use the Google Drive API with Spreadsheet API

是否有办法将电子表格API与驱动器API联系起来?我的意思是,如果我有一个文件ID从谷歌驱动器,我可以切换到电子表格API使用相同的ID和相同的oAuth凭据?

我正在使用php,有宝贵的资源,尤其是电子表格api -我很惊讶有这么少。

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

https://spreadsheets.google.com/feeds

资源id在两个api上是相同的。我在驱动器上的电子表格文件,以0AifSjdPVs9MZdE10eXZTVHVneW9aYjJGVFMxV0VYUEE标识,可以在具有相同ID的电子表格API上访问:

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

注意:我使电子表格公开可读,你可以用这个文件尝试电子表格API后端。

这是我想到的解决方案:

  1. 获取google-api-php-client库和Zend GData库(Zend Framework 1.2,带依赖项)。
  2. 使用Google APIGoogle_Oauth2Service类来处理登录和身份验证。是确保你的"作用域"包括https://www.googleapis.com/auth/drivehttps://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库中记录的电子表格服务。伟大的工作。