使用 Twitter 请求电子邮件

Posted

技术标签:

【中文标题】使用 Twitter 请求电子邮件【英文标题】:Requesting email with Twitter 【发布时间】:2016-02-20 21:36:04 【问题描述】:

我正在尝试使用 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.

我已按照所有步骤在 Fabric 页面中开发此电子邮件请求。我已经请求访问 twitter,他们用确认电子邮件回复了我,我已经在我的 twitter 应用程序管理控制面板中配置了所有必要的项目,但电子邮件请求总是将我发送到失败方法并抛出该异常。

有什么想法吗?

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));
        
    );

【问题讨论】:

@Munon 你解决了这个问题吗?我正面临这个问题..请帮助我。 【参考方案1】:

正如documentation底部所述:

即使用户授予访问她的电子邮件地址的权限,也不会 保证你会得到一个电子邮件地址。例如,如果有人 使用电话号码而不是电子邮件地址注册 Twitter, 电子邮件字段可能为空。发生这种情况时,失败方法 将被调用,因为没有可用的电子邮件地址。

【讨论】:

感谢您的回答。我已阅读此声明,但我正在尝试使用我的 twitter 用户并且我有一个有效的电子邮件地址,所以这不是问题 同样的问题。即使通过电子邮件注册也不给电子邮件。 不,@RahulRastogi,我对 Twitter 登录失去了信心,抱歉【参考方案2】:

我是的,这是真的。您需要从所选应用程序中的权限选项卡更改权限设置。

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 不保证您会收到电子邮件地址。

谢谢

【讨论】:

我已经按照相同的方式登录并使用电子邮件登录,但仍然没有从 twitter 获取电子邮件 ID 您是否从应用设置中请求电子邮件?

以上是关于使用 Twitter 请求电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

Twitter 用户查找请求错误混淆

如何使用 Hybridauth 获取 Twitter 用户的电子邮件?

使用 Fabric SDK 获取 Twitter 用户电子邮件

Facebook、Twitter 和电子邮件无法使用 ShareKit

使用 PhoneGap / jQuery Mobile 在 Facebook / Twitter / 电子邮件功能上分享

设置在某个 Twitter 用户使用他们以前未使用过的主题标签时接收电子邮件