【发布时间】:2012-02-25 19:48:37
【问题描述】:
我正在使用 scribe oAuth 库来实现 Facebook oAuth 登录,使用
this 示例
我在站点 URL 和移动网络 URL 中设置了 www.example.com(一个有效的 ur) 在 facebook 应用程序设置中
这是我在 android 中的代码
OAuthService service = new ServiceBuilder()
.provider(FacebookApi.class)
.apiKey(apiKey)
.apiSecret(apiSecret)
.callback("http://www.example.com/")
.build();
Scanner in = new Scanner(System.in);
System.out.println("=== " + NETWORK_NAME + "'s OAuth Workflow ===");
System.out.println();
// Obtain the Authorization URL
System.out.println("Fetching the Authorization URL...");
String authorizationUrl = service.getAuthorizationUrl(EMPTY_TOKEN);
System.out.println("Got the Authorization URL!");
System.out.println("Now go and authorize Scribe here:");
System.out.println(authorizationUrl);
System.out.println("And paste the authorization code here");
System.out.print(">>");
String val = new String();
if(in.hasNextLine())
val = in.nextLine();
System.out.println("VALUE"+val);
Verifier verifier = new Verifier(val);
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(EMPTY_TOKEN, verifier);
System.out.println("Got the Access Token!");
System.out.println("(if your curious it looks like this: " + accessToken + " )");
System.out.println();
但我收到以下错误
Caused by: org.scribe.exceptions.OAuthException: Response body is incorrect. Can't extract a token from this: '{"error":{"message":"Invalid verification code format.","type":"OAuthException"}}'
Logcat
: === Facebook's OAuth Workflow === : Fetching the Authorization URL... : Got the Authorization URL! : Now go and authorize Scribe here: : https://www.facebook.com/dialog/oauth?client_id=XXXXXXXXXXXX&redirect_uri=http%3A%2F%2Fwww.example.com%2F : And paste the authorization code here : >>VALUE Trading the Request Token for an Access Token... GC_FOR_MALLOC freed 5523 objects / 320760 bytes in 81ms AndroidRuntime(541): Shutting down VM : threadid=1: thread exiting with uncaught exception (group=0x4001d800) FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.commauth/com.commauth.CommonAuthActivity}: org.scribe.exceptions.OAuthException: Response body is incorrect. Can't extract a token from this: '{"error":{"message":"Invalid verification code format.","type":"OAuthException"}}'
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
at android.app.ActivityThread.access$2300(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method) Caused by: org.scribe.exceptions.OAuthException: Response body is incorrect. Can't extract a token from this: '{"error":{"message":"Invalid verification code format.","type":"OAuthException"}}'
at org.scribe.extractors.TokenExtractor20Impl.extract(TokenExtractor20Impl.java:33)
at org.scribe.oauth.OAuth20ServiceImpl.getAccessToken(OAuth20ServiceImpl.java:37)
at com.commauth.CommonAuthActivity.onCreate(CommonAuthActivity.java:57)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
... 11 more
如果我将其作为独立程序运行,那么它会要求我提供一些授权码 但我真的不知道该放什么。
这里是代码行
Scanner in = new Scanner(System.in);
Verifier verifier = new Verifier(in.nextLine());
System.out.println();
【问题讨论】:
-
@Alexei,你还是卡在那里而已,我也在 Facebook 论坛上试过,但仍然没有得到任何重播
-
“它要求我提供一些授权码”这是抄写员说:“转到此 URL”(在此行给出:
System.out.println(authorizationUrl);)“Facebook 应该询问您是否要对此进行授权应用程序。授权它,Facebook 会给你一个代码。把它粘贴到这里:“这有意义吗?我想在 android 驱动的设备上它会是一样的。但也许不是,这可能是您收到该错误的原因。抱歉,我不知道如何解决这个问题。
标签: android facebook oauth-2.0 scribe