google에 로그인하기 위해 scribe 예제를 실행하는 중 다음 오류가 표시됩니다. scribe-1.3.1.jar 파일을 사용하고 있습니다. 해결 방법을 알려주십시오.스레드 "main"의 예외 org.scribe.exceptions.OAuthException : 응답 본문이 올바르지 않음
코드는 다음과 같습니다
이 컴퓨터의 시계가 정확 : 이것은 처음에 단지 의견이었다
import org.scribe.builder.*;
import org.scribe.builder.api.*;
import org.scribe.model.*;
import org.scribe.oauth.*;
public class googleOaoth {
private static final String NETWORK_NAME = "Google";
private static final String AUTHORIZE_URL = "https://www.google.com/accounts/OAuthAuthorizeToken?oauth_token=";
private static final String PROTECTED_RESOURCE_URL = "https://docs.google.com/feeds/default/private/full/";
private static final String SCOPE = "https://docs.google.com/feeds/";
public static void main(String[] args) {
OAuthService service = new ServiceBuilder().provider(GoogleApi.class).apiKey("Mykey").apiSecret("MySecret").scope(SCOPE).build();
Scanner in = new Scanner(System.in);
System.out.println("=== " + NETWORK_NAME + "'s OAuth Workflow ===");
System.out.println();
// Obtain the Request Token
System.out.println("Fetching the Request Token...");
Token requestToken = service.getRequestToken();
System.out.println("Got the Request Token!");
System.out.println("(if your curious it looks like this: " + requestToken + ")");
System.out.println();
System.out.println("Now go and authorize Scribe here:");
System.out.println(AUTHORIZE_URL + requestToken.getToken());
System.out.println("And paste the verifier here");
System.out.print(">>");
Verifier verifier = new Verifier(in.nextLine());
System.out.println();
// Trade the Request Token and Verfier for the Access Token
System.out.println("Trading the Request Token for an Access Token...");
Token accessToken = service.getAccessToken(requestToken, verifier);
System.out.println("Got the Access Token!");
System.out.println("(if your curious it looks like this: " + accessToken + ")");
System.out.println();
// Now let's go and ask for a protected resource!
System.out.println("Now we're going to access a protected resource...");
OAuthRequest request = new OAuthRequest(Verb.GET, PROTECTED_RESOURCE_URL);
service.signRequest(accessToken, request);
request.addHeader("GData-Version", "3.0");
Response response = request.send();
System.out.println("Got it! Lets see what we found...");
System.out.println();
System.out.println(response.getCode());
System.out.println(response.getBody());
System.out.println();
System.out.println("Thats it man! Go and build something awesome with Scribe! :)");
}
}
코드
=== Google's OAuth Workflow ===
Fetching the Request Token...
Exception in thread "main" org.scribe.exceptions.OAuthException: Response body is incorrect. Can't extract token and secret from this: 'Timestamp is too far from current time: 1353931608
at org.scribe.extractors.TokenExtractorImpl.extract(TokenExtractorImpl.java:41)
at org.scribe.extractors.TokenExtractorImpl.extract(TokenExtractorImpl.java:27)
at org.scribe.oauth.OAuth10aServiceImpl.getRequestToken(OAuth10aServiceImpl.java:52)
at action.login.googleOaoth.main(googleOaoth.java:34)
Java Result: 1
컴퓨터의 시계가 맞습니까? 타임 스탬프'1353931608'은 현지 시간이'Fri Jan 16 17:05:31 GMT 1970'라고 제안합니다. 현재 시간은 약 1000 배 더 큰 타임 스탬프를 가질 것입니다 ... – beny23
그 귀중한 올바른. 답변 감사합니다. – xrcwrn
@ beny23 질문에 대답 해 주시면 OP가 수락 한 것으로 표시 할 수 있습니까? 스택 오버플로에 대해 답이없는 모든 필자 질문을 닫으려고합니다. 감사 –