我试图使用OAuth 2.0访问Google的文档列表API 3.0,但我遇到了401错误的一些麻烦。OAuth - 无效令牌:不允许使用请求令牌
用户后接受了,我的代码如下:
GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
oauthParameters.setOAuthConsumerKey(CLIENT_ID);
oauthParameters.setOAuthConsumerSecret(CLIENT_SECRET);
oauthParameters.setOAuthToken(token);
oauthParameters.setOAuthTokenSecret(tokenSecret);
oauthParameters.setScope("https://docs.google.com/feeds/");
service = new DocsService("myapp");
service.setOAuthCredentials(oauthParameters, new OAuthHmacSha1Signer());
DocumentListFeed feed = service.getFeed(new URL("https://docs.google.com/feeds/default/private/full/?v=3"), DocumentListFeed.class);
然后,在最后一行-getFeed() - 抛出异常:
com.google.gdata.util.AuthenticationException: Token invalid - Invalid token: Request token used when not allowed.
<HTML>
<HEAD>
<TITLE>Token invalid - Invalid token: Request token used when not allowed.</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Token invalid - Invalid token: Request token used when not allowed.</H1>
<H2>Error 401</H2>
</BODY>
</HTML>
这是怎么回事?在一个静态的主要测试类中就像一个魅力,但是当我在服务器上运行它时,这条线不再起作用。任何想法?
解决
访问令牌需要检索这种方式,具有GoogleOAuthHelper,不直接与GoogleOAuthParameters:
String accessToken = oauthHelper.getAccessToken(oauthParameters);
难道你把你的解决方案在回答中并接受的答案吗? 这种方式问题被标记为已解决,如果任何人在这篇文章(出于任何原因)获得答案将很容易找到。 – 2012-04-20 12:18:53
这是什么oauthHelper? – 2012-08-14 09:12:17