我无法获取通过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登录的用途是什么。
请给我一些帮助。
提前致谢。
答案 0 :(得分:0)
不,使用twitter4j / Twitter REST API无法获取电子邮件地址。请改用Twitter Kit。
除了推特套件之外没有其他解决方案。请注意,Twitter中的电子邮件是可选的,您可以使用电话号码或电子邮件,因此无法保证每个用户都将电子邮件地址放在他们的帐户上。