防止使用Facebook代理电子邮件注册
问题是,当用户单击我网站上的FB登录按钮时,Facebook API会向他抛出一个窗口,请求访问权限(这是通常的流程)。但是当用户选择代理邮件地址(匿名)时,我想强制用户只使用真实的电子邮件id登录 我该怎么处理这件事防止使用Facebook代理电子邮件注册,facebook,Facebook,问题是,当用户单击我网站上的FB登录按钮时,Facebook API会向他抛出一个窗口,请求访问权限(这是通常的流程)。但是当用户选择代理邮件地址(匿名)时,我想强制用户只使用真实的电子邮件id登录 我该怎么处理这件事 我可以检测到用户使用了代理电子邮件并阻止他注册,但我不能从他的授权应用列表中删除我的应用-这意味着我不能让他进入初始对话框来选择他将提供的电子邮件。你不能强迫用户再次通过授权对话框,因为就Facebook而言,用户已安装您的应用程序,无需执行其他操作。在这里,您可以做的最好的事情
我可以检测到用户使用了代理电子邮件并阻止他注册,但我不能从他的授权应用列表中删除我的应用-这意味着我不能让他进入初始对话框来选择他将提供的电子邮件。你不能强迫用户再次通过授权对话框,因为就Facebook而言,用户已安装您的应用程序,无需执行其他操作。在这里,您可以做的最好的事情是编写您自己的表单,通知用户Facebook代理电子邮件地址是不可接受的,您需要一个真实的电子邮件地址。不幸的是,这并不强迫用户向您提供他们的Facebook帐户电子邮件地址,甚至是真实的电子邮件地址。这是我们通过Facebook所能做到的最好的,这是我们必须要处理的事情 2011年10月5日更新 我浏览了Facebook文档,发现了旧的遗留RESTAPI中存在的一种方法,它实际上允许您从用户处删除应用程序的扩展权限。我认为您可以使用这个API调用来管理从Facebook用户获取非代理地址,同时仍然使用本机安装对话框 我用FB JS SDK测试了它,它成功了!您需要使用的方法是方法。下面是通过JSSDK和PHPSDK调用该方法的两个示例 Javascript:
<script>
FB.api({
method: 'auth.revokeExtendedPermission',
perm: 'read_stream'
}, function(response)
{
console.log(response)
});
</script>
<?php
$facebook->api(array(
'method' => 'auth.revokeExtendedPermission',
'perm' => 'email',
'uid' => $uid
));
FB.api({
方法:“auth.revokeExtendedPermission”,
perm:“读取流”
},功能(回应)
{
console.log(响应)
});
PHP:
<script>
FB.api({
method: 'auth.revokeExtendedPermission',
perm: 'read_stream'
}, function(response)
{
console.log(response)
});
</script>
<?php
$facebook->api(array(
'method' => 'auth.revokeExtendedPermission',
'perm' => 'email',
'uid' => $uid
));
使用php sdk通过图形api(如下所示)调用应用程序撤销,然后通过对话框重定向用户,并解释此非代理要求
private function revokeAccess() {
$access_token = $this->facebook->getAccessToken();
$result = $this->facebook->api(array(
'method' => 'auth.revokeAuthorization',
'uid' => $this->{facebook id here},
'access_token' => $access_token
));
return $result;
}
这段代码是php。
这将完全删除应用程序。
成功返回1;失败时为0。
$this->facebook==来自facebook php sdk的facebook对象。请使用相关编程语言的标记更新您的问题。以前,这个问题是用asp.net、php和ruby on rails标记的。我用一些新发现的信息更新了我的原始答案,我认为您可能能够利用这些信息,并将帮助您完成您想要做的事情。代理邮件系统的存在有一个很好的理由——防止垃圾邮件。除了能够垃圾邮件/出售用户的真实电子邮件地址外,您还有什么理由强迫用户提供另一个电子邮件地址?