在GAE应用上使用python客户端API更新谷歌电子表格

时间:2013-06-26 19:38:13

标签: google-app-engine google-api gdata

我有一个由GAE服务帐户拥有的Google电子表格,我希望我的GAE Python应用程序更新其中一行中的单元格。

基于一些阅读,这些是我的发现:

  • 电子表格服务是老派。它是Google Data API,大多数Google服务现在都位于Google API平台上。对于Google API服务,可以使用服务帐户进行双向oauth2访问,但不能使用Google Data API服务。哦,似乎可以对谷歌数据API服务进行双管齐下的oauth,但前提是该应用程序位于Google Apps域上(我的域名不是)
  • 我可以通过使用我的个人帐户实现类似的效果(即应用的用户可以使用我的电子表格中的数据,并且不需要以任何方式登录或授权)。这是一种复杂的方式,涉及我一次授权应用程序,存储令牌并在用户使用应用程序时重复使用它。还有另一种方法,即使用客户端登录(即我在代码中嵌入我的个人登录名和密码,并使用它来授权应用程序访问我的电子表格中的数据)

后一种方法似乎也相当安全,但当然我必须非常小心我的源代码不会暴露。授权位于GAE应用和Google Data Spreadsheets API之间,因此实际用户的计算机根本不参与。

我的电子表格由服务帐户拥有,并与我的个人帐户共享。

请注意,我的应用还使用了Google云端硬盘API(用于访问我和GAE服务帐户之间共享的个人云端硬盘文件),因此它会授权使用服务帐户。

有人可以证实我的发现是正确的,这种做法是否合理?

1 个答案:

答案 0 :(得分:0)

您可以在OAuth2(Google API平台)流程中使用gdata.spreadsheets.client(Google Data API)。

https://github.com/HatsuneMiku/googleDriveAccess

它使用'oauth2client-gdata-bridge'。