【发布时间】:2015-02-09 13:27:49
【问题描述】:
我正在开发GWTP项目,以下场景在我的本地开发模式下测试成功:
- 通过 OpenID 和 OAuth 进行身份验证和授权
- 将 GoogleOAuthParameters 对象保存到 HttpSession。
- 另一个操作处理程序重用存储在会话中的 GoogleOAuthParameters 来获取 SpreadsheetService 对象。
- 使用 SpreadsheetService 在 GDoc 中操作电子表格。
但是,当部署到 App Engine 时,无法从 GDoc 中读取任何内容,也没有错误/警告,并且返回的列表始终为空。
spreadsheetService = new SpreadsheetService("test");
GoogleOAuthParameters oauthParameters = (GoogleOAuthParameters)sessionProvider.get().getAttribute(HttpSessionProvider.PARAM_OAUTH_PARAMETERS);
spreadsheetService.setOAuthCredentials(oauthParameters, new OAuthHmacSha1Signer());
oauthParameters.setScope(SCOPE_SPREADSHEET);
如果我在初始化 SpreadsheetService 时明确使用如下用户名/密码,我可以从 GDoc 中检索数据。
SpreadsheetService sService = new SpreadsheetService("test");
sService.setUserCredentials("username", "password");
我正在使用 App Engine SDK 1.6.6 和 gdata-spreadsheet-3.0。 请告知我是否做错了什么。 谢谢!
【问题讨论】:
-
只是一个建议:OAuth 1.0 和 ClientLogin 都是不推荐使用的身份验证方法。我建议您改用 OAuth 2.0。
标签: google-app-engine oauth gdata