如果Android手机上没有安装Twitter,则无法获取Twitter登录屏幕

时间:2017-09-19 06:43:22

标签: android twitter twitter-oauth twitter-login

我正在使用Twitter工具包在Android应用程序上设置登录工具。

我使用这些附加费 -

compile 'com.twitter.sdk.android:twitter-core:3.1.1'
compile 'com.twitter.sdk.android:tweet-ui:3.1.1'

我在Application Context类中将它初始化为

TwitterConfig config = new TwitterConfig.Builder(getApplicationContext())
                .logger(new DefaultLogger(Log.DEBUG))
                .twitterAuthConfig(new TwitterAuthConfig(getString(R.string.Twitter_CONSUMER_KEY), getString(R.string.Twitter_CONSUMER_SECRET)))
                .debug(false)
                .build();
Twitter.initialize(config);

在我的Activity中,我在一个调用Twitter API for Login的按钮上有Click侦听器的代码。 twitter_login 是一个TextView。 -

twitter_login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                mTwitterAuthClient = new TwitterAuthClient();

                mTwitterAuthClient.authorize(getActivity(), new Callback<TwitterSession>() {

                    @Override
                    public void success(Result<TwitterSession> twitterSessionResult) {
                        session = TwitterCore.getInstance().getSessionManager().getActiveSession();
                        TwitterAuthToken authToken = session.getAuthToken();

                        twitter_token = authToken.token;
                        twitter_secret = authToken.secret;

                        if (mTwitterAuthClient != null) {
                            (mTwitterAuthClient.requestEmail(session, new com.twitter.sdk.android.core.Callback<String>() {
                                @Override
                                public void success(Result<String> emailResult) {
                                    emailFromTwitter = emailResult.data;

                                }

                                @Override
                                public void failure(TwitterException e) {

                                    String error_message = e.getMessage();
                                }
                            });
                        }

                    }

                    @Override
                    public void failure(TwitterException e) {

                    }
                });

我在onActivityResult中有这个 -

mTwitterAuthClient.onActivityResult(requestCode, resultCode, data);

案例是

  1. 当我点击 twitter_login 时,如果我的Android手机上安装了 Twitter应用程序,则显示授权屏幕并且登录正常。

  2. 但是,如果点击 twitter_login ,我的Android手机上没有安装Twitter应用程序,我甚至无法获得登录屏幕。在这种情况下,如何提示用户输入他/她的Twitter凭据以进行登录?

  3. 为什么会这样?怎么解决?我做错了吗?

1 个答案:

答案 0 :(得分:0)

  

您必须添加回叫URL在https://apps.twitter.com中打开您的应用程序,然后选择您的应用程序,在“设置”标签中添加回调URL   如下   twittersdk://

Ref:link