Facebook Connect:proxied_email并非总是由users_getInfo返回

时间:2009-12-09 17:07:01

标签: facebook

今天我意识到FB Connect在大约4次中有5次没有返回proxied_email字段。 (我可以反复向单个用户重现这一点,所以这显然与隐私选项或权限没有任何关系)

上周它确实运作良好。

我找不到任何关于此字段将被移除的官方信息或任何内容,所以...... 还有人有这个问题吗?有什么我做错了可能导致这种行为吗?或Facebook正在度过糟糕的一天?

5 个答案:

答案 0 :(得分:0)

我要假设这只是Facebook时代的一天。本月应该会发生重大变化,这将改变开发人员与用户交互的方式。通知将被删除等.Facebook将允许完全访问用户的真实电子邮件地址(在用户的许可下),并删除代理的电子邮件系统。

然而,官方的说法是仍应支持电子邮件代理系统。根据{{​​3}},已经授予代理电子邮件权限的用户将继续可用。但是,它没有说新用户,所以他们可能已经删除了那些未授予权限的人的电子邮件地址?

我注意到他们今天已经实施了新的隐私控制措施,因此他们可能会在此时对代理进行更改。

答案 1 :(得分:0)

同样的事情也发生在我身上。在Facebook Connect JS API中,proxied_email大约有80%的时间都在工作,但是在Facebook Developer Toolkit(用于.NET)中,它几乎不起作用(这很奇怪,因为我认为它们使用相同的facebook api)。

这可能与前几天引入的有些失败的隐私设置有关,因为整个代理电子邮件功能与facebook隐私相关(如上面提到的zombat)?根据{{​​3}},API似乎目前处于相当大的压力之下,因为它的行为有点迟缓。

这些事情经常发生吗? Facebook团队要么决定一夜之间改变实施,要么服务或多或少地急转直下?

答案 2 :(得分:0)

users_getInfo 返回的数据似乎不再包含 proxied_email

您无法用FQL来解决问题:

$aResult = $facebook->api_client->fql_query("SELECT proxied_email FROM user WHERE uid=$fbUid");
$sFbMail = $aResult[0]['proxied_email'];

答案 3 :(得分:0)

我做了以下快速修复:

$personArray = $facebook->api_client->users_getInfo( $fb_config->user_id, "last_name, first_name, birthday, hometown_location, current_location, is_app_user, proxied_email" );
$email = $personArray[0]['proxied_email'];
if(empty($email)){
    echo 'Proxied email was not retreived. Trying fql query...';
    $facebookFQLResultXml = $facebook->api_client->fql_query("SELECT proxied_email FROM user WHERE uid=".$fb_config->user_id);
    $email = $facebookFQLResultXml['proxied_email'];
}

答案 4 :(得分:0)

我正在使用Facebook .NET Developer Toolkit并认为它只是有点儿错误,这就是为什么它并不总是有效。最后,我还使用FQL解决了这个问题,它运行得非常好(带有一点XPath)