使用OAuth从Google帐户中检索文档

时间:2011-08-02 18:30:55

标签: google-app-engine oauth google-api google-apps google-docs-api

我需要知道如何从特定用户获取文档,用户使用...

进行身份验证
    UserService userService = UserServiceFactory.getUserService();
    User user = userService.getCurrentUser();

当用户通过身份验证后,我需要从Google文档中获取文档。我知道我必须使用OAuth,但我无法正确使用它。

我希望有人可以帮助我,谢谢。

3 个答案:

答案 0 :(得分:1)

  

如果我已经有用户登录,我怎样才能获得他的文档

这是一个很好的参考,提供的信息比我自己提供的更多:

http://code.google.com/apis/documents/docs/3.0/developers_guide_java.html

这应该让你走上正确的道路。

答案 1 :(得分:0)

用户已通过App Engine身份验证,但未针对任何其他服务进行身份验证,或者您已获得对其的访问权限。您无法使用其App Engine凭据访问任何其他服务;您需要遵循标准的OAuth授权程序才能访问该用户拥有的任何其他服务。

答案 2 :(得分:0)

  1. 首先使用例如路标库来执行oauth部分:这里是example (查看Google的示例代码)
  2. 完成步骤1中的oauth过程后;并存储ACCESS_TOKEN和 TOKEN_SECRET您可以访问谷歌文档服务,如下面的代码片段。
  3. (注意:CONSUMER_KEY& CONSUMER_SECRET是您从谷歌获得并在步骤1中使用的.ACCESS_TOKEN& TOKEN_SECRET是您在步骤1中完成oauth流程后由Google身份验证服务器发送给您的秘密访问令牌)

    希望这会有所帮助。

    GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
      oauthParameters.setOAuthConsumerKey(CONSUMER_KEY);
      oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET);
      oauthParameters.setOAuthToken(ACCESS_TOKEN);
      oauthParameters.setOAuthTokenSecret(TOKEN_SECRET);
    
      DocsService client = new DocsService("yourCompany-YourAppName-v1");
      client.setOAuthCredentials(oauthParameters, new OAuthHmacSha1Signer());
    
      URL feedUrl = new URL("https://docs.google.com/feeds/default/private/full");
      DocumentListFeed resultFeed = client.getFeed(feedUrl, DocumentListFeed.class);
      for (DocumentListEntry entry : resultFeed.getEntries()) {
        System.out.println(entry.getTitle().getPlainText());
      }