5

我有一个项目,我正在使用 Selenium 来测试 Facebook 身份验证。我创建了一个 Facebook 应用,在这个应用中创建了一个测试用户,并使用 Facebook 登录创建了一些测试。直到现在,它还在工作。但是在过去的两周里,Facebook 发生了一些变化,我的测试失败了。这是由于权限对话框中的界面更改(我通过他的 id 定位按钮)。第二个问题是我没有从 Facebook 测试用户那里获得电子邮件地址,而是一个长度超过 75 个字符的代理电子邮件(我的 db 字段长度在我正在使用的框架中被硬编码)。

如果我以普通用户身份登录,它工作正常,我得到这个权限框:

在此处输入图像描述

但是当我以我创建的测试用户身份登录时(通过应用程序开发人员角色中的“切换到”),我得到了这个框:

在此处输入图像描述

我在大约 2 周前对其进行了测试,但这仍然有效。今天它变了。所以我的问题:

  • 如何取回测试用户的旧权限框?
  • 我怎样才能获得真实的电子邮件地址而不是代理?

谢谢!

4

2 回答 2

0

我在使用 Auth Dialog 时遇到了同样的问题。我尝试了一些具有各种设置的新旧应用程序,包括三月/四月。2013 Breaking Changes 启用/禁用,但没有帮助。
但是,我想我可以帮助您解决电子邮件问题。当您以测试用户身份登录并进入帐户设置页面时,您将看到测试用户的主要电子邮件地址。默认情况下,这应该很长,就像我附上的图片一样。

facebook 测试用户的默认电子邮件地址配置

Facebook 平台返回此主要电子邮件地址。如果您使用您的测试用户帐户通过 Auth Dialog 并查看隐私设置页面,您会发现默认的主电子邮件地址已与应用程序共享。您必须为测试用户提供一个新的电子邮件地址,并通过帐户设置页面将新的电子邮件地址设置为主要电子邮件地址。

于 2013-02-25T12:24:55.813 回答
0

为什么登录对话框与测试用户不同?

通过您的测试用户,您可以看到登录对话框的未来。事实上,这不是“不工作”,但这是 2012 年 12 月发布的更新。让我引用:

我们的登录对话框已经过重新设计,以便更容易理解应用程序请求的权限。我们简化了演示文稿,并更新了我们的语言以提高清晰度。

“基本信息”已重命名为“公共个人资料和朋友列表”,以反映共享的内容。访问您的公开个人资料的应用程序会获取您的姓名、个人资料图片、年龄范围、性别、语言、国家和其他公开信息。

资料来源:为人们提供更大的清晰度和控制力,developers.facebook.com /blog

您没有与普通用户见面的原因是 Facebook 不会同时更新每个人。他们会根据国家/地区、帐户类型或我忽略的一些其他参数部分启动更新。

专用于开发人员帐户的部分更新(统一消息 FQL 表)示例:

仅在新的消息传递系统广泛可用之前,我们才为注册的开发者帐户提供对该 API 的早期访问。您应该在当前时间将消息表用于生产应用程序。

在我们的例子中,我们现在知道测试用户可以访问更新,但也有人说:

作为 iOS6 集成的一部分,我们已经推出了许多这些改进,现在正在更广泛地推广它们。


关于代理电子邮件

事实上,代理电子邮件是任何用户保持其真实电子邮件匿名的一种方式。您必须考虑代理电子邮件。

  1. 加入应用程序时,用户可以在真实电子邮件和代理电子邮件之间进行选择:代理电子邮件选择

  2. 您需要期待的其他事情是用户在连接到您的应用程序时没有验证他们的帐户,这种情况可能如此此处所述。

  3. 那么,为什么测试用户会返回代理邮件呢?因为测试用户(作为机器人并且拥有虚假电子邮件)没有验证他们的电子邮件

您会看到,在至少 3 种情况下(最后,测试用户是一个很好的例子),您需要处理这些代理电子邮件。它们是开发人员偶然偶然遇到的,不容忽视。对于您的情况,您仍然可以尝试禁止拥有代理电子邮件的测试用户访问您的应用程序。但是您应该接受他们,而不应该强迫他们分享他们的原始电子邮件地址。更好的解决方案是验证测试用户的电子邮件:

  1. 连接到提供代理电子邮件的测试用户帐户
  2. 添加电子邮件地址(此处需要密码),
  3. 转到电子邮件邮箱并单击验证链接,
  4. 将新的电子邮件地址设置为主,
  5. 测试用户现在应该提供他的原始电子邮件,而不是代理了!
于 2013-03-01T21:38:49.293 回答