我有一个问题需要验证我的Facebook表单。在自定义输入模糊时,我有消息
访问属性的权限被拒绝
并且不会进行验证。
这是我的代码:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>Home</title>
</head>
<body>
<div id="fb-root"></div>
<script src="https://connect.facebook.net/en_US/all.js#appId=<?php echo FACEBOOK_APP_ID; ?>&xfbml=1"></script>
<fb:registration
fields='[
{"name":"name"},
{"name":"first_name"},
{"name":"last_name"},
{"name":"gender"},
{"name":"company", "description":"Company", "type":"text"},
{"name":"address", "description":"Address", "type":"text"},
{"name":"zip_code", "description":"Zip Code", "type":"text"},
{"name":"city", "description":"City", "type":"typeahead", "categories":["city"]},
{"name":"phone", "description":"Phone","type":"text"},
{"name":"mobile_phone", "description":"Mobile Phone","type":"text"},
{"name":"email"},
{"name":"optin", "description":"I may receive communications from Fanpage Booster", "type":"checkbox", "default":"unchecked"},
{"name":"captcha"}
]'
redirect-uri="recup.php" width="530" fb_only="true" onvalidate="validate" >
</fb:registration>
<script>
function validate(form) {
errors = {};
if (form.company == '') {
errors.company = "Company can't be empty !";
}
if (form.address == '') {
errors.address = "Address can't be empty !";
}
if (form.zip_code == '') {
errors.zip_code = "Zip Code can't be empty !";
}
return errors;
}
</script>
</body>
我看了一些有关Facebook注册,Facebook文档和本网站问题的教程,但我没有看到解决方案或类似的问题......
如何解决此问题?
答案 0 :(得分:3)
我遇到了同样的情况,最后通过使用安全站点(HTTPS)来修复它。 即使我指定了无协议的脚本引用,它也无法在HTTP中工作。
答案 1 :(得分:1)
我无法重现该错误。我确实必须确保将redirect-uri设置为绝对URL,添加一个关闭的html标记,并将脚本引用更改为协议,如下所示:
<script src="//connect.facebook.net/en_US/all.js#appId=APPID&xfbml=1"></script>
Facebook验证不适用于模糊,一旦表单提交,它就可以运行。你在哪里添加一个onblur事件?