【问题标题】:Getting proxy email address instead of real email address for a user with facebook sdk on android在android上使用facebook sdk为用户获取代理电子邮件地址而不是真实电子邮件地址
【发布时间】:2011-10-12 13:25:59
【问题描述】:

我正在开发一个集成了 Facebook 的 android 应用程序。 我已经正确创建了一个 Facebook 应用程序并在应用程序设置中添加了我的调试密钥库的哈希码。

我可以成功登录Facebook并正确获取有关登录用户的基本信息。我正在使用官方的 Android 版 Facebook SDK。

我只要求用户获得电子邮件地址的许可。这是昨天的工作。我得到了正确的电子邮件地址。但从今天开始,它给了我代理的电子邮件地址,而不是真实的电子邮件地址。

在请求允许的权限对话框中,它向我显示了正确的(真实)电子邮件地址,但是当我查询图形 API 调用(“我”)时,它给了我代理的电子邮件地址。

有人遇到过这个问题吗?

Here is a screenshot of the permission dialog.

我尝试过使用不同的密钥哈希,创建一个新的 Facebook 应用程序,创建一个新的 Facebook 帐户。同样的行为也发生在我们应用的 iPhone 版本上。

编辑-> 在 Facebook 上查看帐户设置页面 > 应用程序后,我请求的权限是“电子邮件”,但在应用程序设置上它只显示代理电子邮件地址的权限。如何请求真实电子邮件地址的许可? Facebook 最近是否更改了他们的权限模型?

EDIT 2 -> 我尝试了 Facebook Android SDK 中包含的新 Hackbook for Android 示例。 它没有添加“电子邮件”权限,所以我只是在示例中修改了它,甚至该示例现在正在获取代理电子邮件地址! :( 所以这肯定不是我的代码的问题。

【问题讨论】:

  • 尝试使用“电子邮件”添加 user_about_me 权限并尝试查询图形调用“我”
  • 尝试按照您的建议添加“user_about_me”,但结果仍然相同。我仍然收到代理电子邮件地址。 :(

标签: android facebook


【解决方案1】:

我有同样的问题。经过大量调试后,我发现在 Facebook 应用程序设置中,禁用“增强的身份验证对话框”就可以了。这可以在“高级”下的应用设置中找到。

您的里程可能会有所不同。

【讨论】:

    【解决方案2】:

    我遇到了类似的问题(代理电子邮件通过网络应用程序公开,而不是 Android 应用程序),但在文档方面找不到太多内容。尽我所能,它必须与用户的旧权限有关。

    This post (from January 2010) 描述了从代理到真实电子邮件句柄的转变。我的想法是“如果用户在轮班之前授予您的应用权限,FB 必须仍然在某处设置一些,以便您的应用只能获得代理句柄。”

    我发现了 a recent FB blogpost 关于撤销旧权限的信息。

    这是我的 JS 代码(包含在 FB.init 之后)的概要,用于在提示用户登录时撤销“电子邮件”权限(此时将再次提示他们输入“电子邮件”权限):

    FB.Event.subscribe('auth.prompt',
       function(response) {
         FB.api('/me/permissions', 'delete', { permission : 'email' }, function(response) {
           // do something here if you like 
         }); 
       }   
    );
    

    我知道这并不能完全解决您的问题,但希望它能为您使用的语言指明正确的方向。

    【讨论】:

    • 感谢您的回复。我只是在这个月才开始将 Facebook 集成到我们的应用程序中。而且我正在一个新注册的 Facebook 帐户上进行测试,所以我认为这与撤销旧权限无关。但无论如何,这在其他地方可能会有所帮助。
    猜你喜欢
    • 2013-04-07
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多