如何使用Java客户端访问Google服务?

我正在开发一个在Google Apps Engine(GAE)上注册的名为“searcegadget2”的Java应用程序。 我已经使用OAuthHmacSha1Signer()实现了3脚OAuth 。 我正确地获得了访问令牌并将其存储在会话中 (会话已启用 )。

接下来,我使用链接onclick事件调用servlet。 此servlet用于使用accesstoken访问Spreadsheet服务。 我的代码是:

GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters(); oauthParameters.setOAuthConsumerKey(CONSUMER_KEY); oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET); oauthParameters.setOAuthType(OAuthParameters.OAuthType.THREE_LEGGED_OAUTH); oauthParameters.setScope("https://spreadsheets.google.com/feeds/"); oauthParameters.setOAuthToken(request.getSession().getAttribute("oauth_token").toString()); oauthParameters.setOAuthVerifier(request.getSession().getAttribute("oauth_verifier").toString()); oauthParameters.setOAuthTokenSecret(request.getSession().getAttribute("oauth_token_secret").toString()); out.println("Accessing Service"); GoogleService googleService = new GoogleService("wise", "searceapps-searcegadget2-1"); out.println("
Setting Parameter"); googleService.setOAuthCredentials(oauthParameters, new OAuthHmacSha1Signer()); out.println("
Setting URl"); URL feedUrl = new URL("https://spreadsheets.google.com/feeds/spreadsheets/private/full"); out.println("
Accessing ResultFeed"); SpreadsheetFeed resultFeed = googleService.getFeed(feedUrl, SpreadsheetFeed.class); out.println("
"); out.println("Response Data:"); out.println("====================================================="); out.println("| TITLE: " + resultFeed.getTitle().getPlainText()); if (resultFeed.getEntries().isEmpty()) { out.println("|\tNo entries found."); } else { List spreadsheets = resultFeed.getEntries(); for (int i = 0; i < spreadsheets.size(); i++) { SpreadsheetEntry entry = spreadsheets.get(i); System.out.println("\t" + entry.getTitle().getPlainText()); } } out.println("====================================================="); out.println("
");

我打印了所有的oauthParameter进行测试,并且它们已正确设置。 但是,在调用此servlet时,我得到的唯一输出是:

访问服务

我添加了gdata-spreadsheet-3.0.jar,但它甚至不允许我创建服务对象! 问题是什么 ?

此外,根据此处的说明 ,“应用程序名称最好应具有[company-id] – [app-name] – [app-version]格式.Google服务器将使用该名称来监控身份validation来源。 “ 我不知道我在哪里找到我的公司ID,但我的应用名称是“searcegadget2”,版本是“1”。

供参考: Google Spreadsheets API开发人员指南:Java , 使用Java客户端库 , Google数据协议客户端库中的OAuth

终于找到了,

谷歌服务依赖于: guava,因为它在这里提到。

这是一个应该帮助你的例子 。

我想你忘了添加像示波器这样的参数。