使用Android

时间:2016-01-11 08:00:46

标签: android email twitter callback twitter4j

我无法获取通过Twitter登录我的应用的用户的电子邮件地址。使用Fabric的Twitter Callback提供了获取电子邮件地址的回调方法,下面是获取电子邮件地址的代码。

TwitterAuthClient authClient = new TwitterAuthClient();

            authClient.requestEmail(session, new Callback<String>() {
                @Override
                public void success(Result<String> result) {
                    Toast.makeText(MainActivity.this, "onSuccess", Toast.LENGTH_LONG).show();
                    Log.e("MainActicity Email : ", result.data);
                    tvEmail.setText(result.data + "\n" + session.getUserName() + "\n" + session.getUserId());
                }

                @Override
                public void failure(TwitterException e) {
                    Toast.makeText(MainActivity.this, "onFailure", Toast.LENGTH_LONG).show();
                    Log.e("MainActicity Email 2 : ", e.toString());
                    tvEmail.setText("User Don't want to share Email Address" + "\n" + session.getUserName());
                }
            });

通过这种方式,我可以获得电子邮件地址。但是这个方法使用了Retrofit 1.9,我在我的项目中使用了Retrofit 2.0。此冲突产生的错误称为“验证错误”。此时我无法将我的Retrofit 2.0降级为降低。所以,我想用不同的方法获取电子邮件地址。另一种方法是使用Twitter4j。在这里我能够获得除电子邮件地址之外的所有细节。如果我们在注册时没有收到用户的电子邮件地址,那么使用Twitter登录的用途是什么。

请给我一些帮助。

提前致谢。

1 个答案:

答案 0 :(得分:0)

不,使用twitter4j / Twitter REST API无法获取电子邮件地址。请改用Twitter Kit。

除了推特套件之外没有其他解决方案。请注意,Twitter中的电子邮件是可选的,您可以使用电话号码或电子邮件,因此无法保证每个用户都将电子邮件地址放在他们的帐户上。