使用Fabric SDK无效的JSON

时间:2015-01-26 10:46:07

标签: android json twitter sdk

我使用此代码并捕获错误:

//我根据手册

完成了所有工作
loginButton = (TwitterLoginButton) findViewById(R.id.login_button);
    loginButton.setCallback(new Callback<TwitterSession>() {
        @Override
        public void success(Result<TwitterSession> result) {                
            Result<TwitterSession> result1 = result;
        }

        @Override
        public void failure(TwitterException exception) {                
            exception.printStackTrace(); // I catch this exception
        }
    });

这是我的日志:

01-26 12:39:10.258  32298-32298/com.DriverNotes.AndroidMobileClient E/Twitter﹕ Invalid json: <?xml version="1.0" encoding="UTF-8"?>
    <hash>
    <error>Desktop applications only support the oauth_callback value 'oob'</error>
    <request>/oauth/request_token</request>
    </hash>
    com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 8
            at com.google.gson.JsonParser.parse(JsonParser.java:65)
            at com.google.gson.JsonParser.parse(JsonParser.java:45)
            at com.twitter.sdk.android.core.TwitterApiException.parseErrorCode(TwitterApiException.java:107)
            at com.twitter.sdk.android.core.TwitterApiException.readErrorCode(TwitterApiException.java:96)
            at com.twitter.sdk.android.core.TwitterApiException.<init>(TwitterApiException.java:43)
            at com.twitter.sdk.android.core.TwitterApiException.convert(TwitterApiException.java:81)
            at com.twitter.sdk.android.core.Callback.failure(Callback.java:28)
            at retrofit.CallbackRunnable$2.run(CallbackRunnable.java:53)
            at android.os.Handler.handleCallback(Handler.java:725)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5279)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 8
            at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1505)
            at com.google.gson.stream.JsonReader.checkLenient(JsonReader.java:1386)

P.S。我希望能够提供有关该问题的足够信息

2 个答案:

答案 0 :(得分:1)

从错误中看,您的Twitter应用程序可能需要一些额外的信息才能正常工作。看看这个:

https://twittercommunity.com/t/desktop-applications-only-support-the-oauth-callback-value-oob-oauth-request-token/252/2

答案 1 :(得分:1)

如果它仍然相关 - 我遇到了同样的问题,解决方法是在app web page中设置redirect_url字段。

并且你必须取消选中文本框: “启用回叫锁定(建议启用回调锁定以确保应用无法覆盖回调网址)”