Java “线程中的异常”;“主要”;org.scribe.exceptions.oautheexception:响应正文不正确
当运行scribe登录google的示例时,它显示了以下错误。 我正在使用scribe-1.3.1.jar文件。 请告诉我如何解决它 代码是:Java “线程中的异常”;“主要”;org.scribe.exceptions.oautheexception:响应正文不正确,java,oauth-2.0,scribe,Java,Oauth 2.0,Scribe,当运行scribe登录google的示例时,它显示了以下错误。 我正在使用scribe-1.3.1.jar文件。 请告诉我如何解决它 代码是: import org.scribe.builder.*; import org.scribe.builder.api.*; import org.scribe.model.*; import org.scribe.oauth.*; public class googleOaoth { private static final String N
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倍左右…似乎您的服务器时间设置不正确。请更正服务器时间,在确定时间后,您可能需要重新启动web服务器。
-更改服务器时间。请先尝试重新启动Web服务器。如果无法工作,请重新启动计算机==>它可以工作 你电脑上的时钟正确吗?时间戳
1353931608
表明您的当地时间是Fri Jan 16 17:05:31 GMT 1970
。当前时间将有一个大约1000倍大的时间戳…太好了,亲爱的,这是正确的。谢谢您的回复。@beny23您能回答这个问题吗?这样OP就可以将其标记为已接受?试图关闭堆栈溢出上所有未回答的抄写员问题。谢谢