Tôi đang cố truy cập API danh sách tài liệu của Google 3.0 với OAuth 2.0 nhưng tôi gặp một số sự cố với lỗi 401.OAuth - Mã thông báo không hợp lệ: Mã thông báo yêu cầu được sử dụng khi không được phép
Sau khi người dùng đã chấp nhận, mã của tôi là như sau:
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);
Sau đó, trong dòng cuối cùng -getFeed() - ném ngoại lệ:
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>
gì đang xảy ra? Trên một lớp thử nghiệm chính tĩnh hoạt động như một nét duyên dáng, nhưng khi tôi chạy nó trên máy chủ dòng này không hoạt động nữa. Bất kỳ ý tưởng?
SOLVED
Các thẻ truy cập cần phải được lấy ra theo cách này, với một GoogleOAuthHelper, không phải với GoogleOAuthParameters trực tiếp:
String accessToken = oauthHelper.getAccessToken(oauthParameters);
Ông có thể đưa giải pháp của bạn trong một câu trả lời và chấp nhận câu trả lời đó? Bằng cách này, câu hỏi được đánh dấu là đã được giải quyết và nếu có ai trên bài đăng này (vì bất kỳ lý do nào), câu trả lời sẽ dễ dàng được tìm thấy. –
oauthHelper này là gì? –