是否可以将Google Drive API与Spreadsheet API一起使用

时间:2013-04-09 22:50:29

标签: php google-drive-api google-spreadsheet-api

有没有办法将Spreadsheets API与Drive API联系起来?我的意思是,如果我有来自Google云端硬盘的文件ID,那么我可以使用相同的ID和相同的oAuth凭据切换到Spreadsheets API吗?

我正在使用php,特别是电子表格api有一些宝贵的资源 - 我很惊讶那里的东西太少了。

2 个答案:

答案 0 :(得分:3)

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

https://spreadsheets.google.com/feeds

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

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

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

答案 1 :(得分: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库
  5. $ authsub = Zend_Gdata_AuthSub :: getHttpClient($ tok-> access_token);
    $ spreadsheet_service = new Zend_Gdata_Spreadsheets($ authsub);

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