如果设备中未安装Twitter应用,则Twitter登录不起作用

时间:2018-07-15 14:02:12

标签: android twitter twitter-login

这可能是SO上最常被问到的问题,但我仍然无法解决我的问题。 我已经检查了thisthis和许多其他项目,但是问题仍然存在。

如果在用户设备上安装了twitter app,一切正常,但是如果没有,我将收到以下错误消息。

  

无效的json:此客户端应用程序未批准回调URL。   可以在您的应用程序中调整批准的回调URL   设定       com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_OBJECT,但为STRING   在第1行第1列的路径$

     

由以下原因引起:java.lang.IllegalStateException:预期为BEGIN_OBJECT,但   在第1行第1列路径$

     

com.twitter.sdk.android.core.TwitterApiException:HTTP请求   失败,状态:403           在com.twitter.sdk.android.core.Callback.onResponse(Callback.java:42)

我将https://my-blog.firebaseio.com/posts.json?orderBy="$key"&startAt="keyOfPost10"&limitToFirst=11 定义为回调URL,以下是我的实现。

https://www.google.com

Strings.xml

//Activity Class

 Twitter.initialize(this);

 button.setCallback(new Callback<TwitterSession>() {
            @Override
            public void success(Result<TwitterSession> result) {

                TwitterSession session = TwitterCore.getInstance().getSessionManager().getActiveSession();
                TwitterAuthToken authToken = session.getAuthToken();
                String token = authToken.token;
                String secret = authToken.secret;

                login(session);

            }

            @Override
            public void failure(TwitterException exception) {
                Log.d("Failure", "failure");
            }
        });

成绩

   <string name="com.twitter.sdk.android.CONSUMER_KEY">---</string>
   <string name="com.twitter.sdk.android.CONSUMER_SECRET">---</string>

编辑

我还尝试过compile 'com.twitter.sdk.android:twitter:3.1.1' twittersdk://作为回调网址

2 个答案:

答案 0 :(得分:5)

请参阅此链接here

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

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

仅通过将twittersdk://设置为一个回调URL而不添加任何内容即可。

答案 1 :(得分:0)

尝试FireBase Ui auth sdk,我认为这将是最适合您的解决方案,    阅读文档https://firebase.google.com/docs/auth/android/firebaseui