gpt4 book ai didi

android - 如果未安装Twitter应用,则Android应用Twitter登录失败(不显示webView登录屏幕)

转载 作者:行者123 更新时间:2023-11-29 14:43:34 26 4
gpt4 key购买 nike

编辑1
我知道已经问过这个问题,但是没有人回答stacktrace也没有添加进去,所以我又问了一次。
如果我安装了twitter app ant并尝试登录,则该应用程序将成功使用twitter登录,但是如果我从移动设备上卸载了twitter app,然后尝试登录到应用程序,则收到以下错误,但无法通过twitter登录

无法获取请求令牌
我没有看到任何webView。单击带有Twitter按钮的登录后。

下面是我收到的堆栈跟踪

E / Twitter:无效的json:此客户端应用程序未批准回调URL。可以在您的应用程序设置中调整批准的回调URL
    com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_OBJECT,但位于第1行第1列的路径$
        在com.google.gson.internal.bind.ReflectiveTypeAdapterFactory $ Adapter.read(ReflectiveTypeAdapterFactory.java:224)
        在com.twitter.sdk.android.core.models.SafeListAdapter $ 1.read(SafeListAdapter.java:45)
        在com.twitter.sdk.android.core.models.SafeMapAdapter $ 1.read(SafeMapAdapter.java:45)
        在com.google.gson.Gson.fromJson(Gson.java:887)
        在com.google.gson.Gson.fromJson(Gson.java:852)
        在com.google.gson.Gson.fromJson(Gson.java:801)
        在com.google.gson.Gson.fromJson(Gson.java:773)
        在com.twitter.sdk.android.core.TwitterApiException.parseApiError(TwitterApiException.java:110)
        在com.twitter.sdk.android.core.TwitterApiException.readApiError(TwitterApiException.java:95)
        在com.twitter.sdk.android.core.TwitterApiException。(TwitterApiException.java:43)
        在com.twitter.sdk.android.core.Callback.onResponse(Callback.java:42)
        在retrofit2.ExecutorCallAdapterFactory $ ExecutorCallbackCall $ 1 $ 1.run(ExecutorCallAdapterFactory.java:70)
        在android.os.Handler.handleCallback(Handler.java:789)
        在android.os.Handler.dispatchMessage(Handler.java:98)
        在android.os.Looper.loop(Looper.java:172)
        在android.app.ActivityThread.main(ActivityThread.java:6637)
        在java.lang.reflect.Method.invoke(本机方法)
        在com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:240)
        在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
     由以下原因引起:java.lang.IllegalStateException:应为BEGIN_OBJECT,但在第1行第1列路径$ STRING
        在com.google.gson.stream.JsonReader.beginObject(JsonReader.java:385)
        在com.google.gson.internal.bind.ReflectiveTypeAdapterFactory $ Adapter.read(ReflectiveTypeAdapterFactory.java:213)
        在com.twitter.sdk.android.core.models.SafeListAdapter $ 1.read(SafeListAdapter.java:45)
        在com.twitter.sdk.android.core.models.SafeMapAdapter $ 1.read(SafeMapAdapter.java:45)
        在com.google.gson.Gson.fromJson(Gson.java:887)
        在com.google.gson.Gson.fromJson(Gson.java:852)
        在com.google.gson.Gson.fromJson(Gson.java:801)
        在com.google.gson.Gson.fromJson(Gson.java:773)
        在com.twitter.sdk.android.core.TwitterApiException.parseApiError(TwitterApiException.java:110)
        在com.twitter.sdk.android.core.TwitterApiException.readApiError(TwitterApiException.java:95)
        在com.twitter.sdk.android.core.TwitterApiException。(TwitterApiException.java:43)
        在com.twitter.sdk.android.core.Callback.onResponse(Callback.java:42)
        在retrofit2.ExecutorCallAdapterFactory $ ExecutorCallbackCall $ 1 $ 1.run(ExecutorCallAdapterFactory.java:70)
        在android.os.Handler.handleCallback(Handler.java:789)
        在android.os.Handler.dispatchMessage(Handler.java:98)
        在android.os.Looper.loop(Looper.java:172)
        在android.app.ActivityThread.main(ActivityThread.java:6637)
        在java.lang.reflect.Method.invoke(本机方法)
        在com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:240)
        在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

E / Twitter:无法获取请求令牌
    com.twitter.sdk.android.core.TwitterApiException:HTTP请求失败,状态:403
        在com.twitter.sdk.android.core.Callback.onResponse(Callback.java:42)
        在retrofit2.ExecutorCallAdapterFactory $ ExecutorCallbackCall $ 1 $ 1.run(ExecutorCallAdapterFactory.java:70)
        在android.os.Handler.handleCallback(Handler.java:789)
        在android.os.Handler.dispatchMessage(Handler.java:98)
        在android.os.Looper.loop(Looper.java:172)
        在android.app.ActivityThread.main(ActivityThread.java:6637)
        在java.lang.reflect.Method.invoke(本机方法)
        在com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:240)
        在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

E / Twitter:授权完成,但有错误
    com.twitter.sdk.android.core.TwitterAuthException:无法获取请求令牌
        在com.twitter.sdk.android.core.identity.OAuthController $ 1.failure(OAuthController.java:94)
        在com.twitter.sdk.android.core.internal.oauth.OAuth1aService $ 1.failure(OAuth1aService.java:191)
        在com.twitter.sdk.android.core.Callback.onResponse(Callback.java:42)
        在retrofit2.ExecutorCallAdapterFactory $ ExecutorCallbackCall $ 1 $ 1.run(ExecutorCallAdapterFactory.java:70)
        在android.os.Handler.handleCallback(Handler.java:789)
        在android.os.Handler.dispatchMessage(Handler.java:98)
        在android.os.Looper.loop(Looper.java:172)
        在android.app.ActivityThread.main(ActivityThread.java:6637)
        在java.lang.reflect.Method.invoke(本机方法)
        在com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:240)
        在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

最佳答案

最后我得到了答案here.

我们需要在回调URL中设置twittersdk://,如下面的链接中所述。

步骤1:转到Twitter应用程序设置https://apps.twitter.com/ >>选项卡设置>>将此文本“ twittersdk://”填充到您的回调URL字段中(我在lib类中找到了它)
第2步:保存您的更新
步骤3:再次签出您的应用。

只需将twittersdk://设置为一个回调URL,而不附加任何内容即可。

关于android - 如果未安装Twitter应用,则Android应用Twitter登录失败(不显示webView登录屏幕),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50624987/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com