今天我意识到FB Connect在大约4次中有5次没有返回proxied_email字段。 (我可以反复向单个用户重现这一点,所以这显然与隐私选项或权限没有任何关系)
上周它确实运作良好。
我找不到任何关于此字段将被移除的官方信息或任何内容,所以...... 还有人有这个问题吗?有什么我做错了可能导致这种行为吗?或Facebook正在度过糟糕的一天?
答案 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)