我正在尝试使用Twitter登录请求来自用户的电子邮件,它总是返回以下错误
com.twitter.sdk.android.core.TwitterException: Your application may not have access to email addresses or the user may not have an email address. To request access, please visit https://support.twitter.com/forms/platform.
我已按照所有步骤在结构页面中开发此电子邮件请求。我已经请求访问推特并且他们已经通过确认电子邮件回复了我,并且我已经在我的推特应用管理控制面板中配置了所有必需的项目,但是电子邮件请求总是向我发送失败方法并抛出该异常。
任何想法?
private void twitterConfig() {
TwitterAuthConfig authConfig =
new TwitterAuthConfig("Consumer Key (API Key)",
"Consumer Secret (API Secret");
Fabric.with(this, new Twitter(authConfig));
twitterLoginButton.setCallback(new Callback<TwitterSession>() {
@Override
public void success(Result<TwitterSession> result) {
TwitterSession session = result.data;
String msg = "@" + session.getUserName() + " logged in! (#" + session.getUserId() + ")";
TwitterAuthClient authClient = new TwitterAuthClient();
authClient.requestEmail(session, new Callback<String>() {
@Override
public void success(Result<String> result) {
System.out.println();
}
@Override
public void failure(TwitterException exception) {
notificationManager.showMessage(getString(R.string.error_cant_get_login));
}
});
}
@Override
public void failure(TwitterException exception) {
notificationManager.showMessage(getString(R.string.error_generic));
}
});
}
答案 0 :(得分:0)
即使用户授予访问其电子邮件地址的权限,也不是 保证你会收到一个电子邮件地址。例如,如果有人 使用电话号码而不是电子邮件地址注册Twitter 电子邮件字段可能为空。当发生这种情况时,失败的方法 将被调用,因为没有可用的电子邮件地址。
答案 1 :(得分:0)
我是的,这是真的。您需要从所选应用程序中的权限选项卡更改权限设置。
https://apps.twitter.com/app/PROJECT_ID/permissions
这些附加权限要求您提供网址 应用程序或服务的隐私政策和服务条款。您可以 在应用程序设置中配置这些字段。 请求用户发送电子邮件地址
一旦你做了改变,这将在几小时/分钟后启用。
TwitterAuthClient authClient = new TwitterAuthClient();
authClient.requestEmail(session, new Callback < String > () {
@Override
public void success(Result < String > result) {
// Do something with the result, which provides the email address
Log.v("log_tag", "success email true > " + result.data);
}
@Override
public void failure(TwitterException exception) {
// Do something on failure
Log.v("log_tag", "success email false > " + exception);
}
});
As neeeko said我们无法保证您会收到一个电子邮件地址。
由于