Javascript Facebook注册插件未重定向/发送已登录用户的数据

Javascript Facebook注册插件未重定向/发送已登录用户的数据,javascript,facebook,iframe,Javascript,Facebook,Iframe,我刚刚尝试在iframe页面选项卡中使用Facebook注册插件 如果有人想知道我为什么要这么做,我想使用Facebook注册插件在我的FB页面上创建一个时事通讯注册表单 我尝试使用以下代码: <iframe src="https://www.facebook.com/plugins/registration.php? client_id=113869198637480& redirect_uri=&

我刚刚尝试在iframe页面选项卡中使用Facebook注册插件

如果有人想知道我为什么要这么做,我想使用Facebook注册插件在我的FB页面上创建一个时事通讯注册表单

我尝试使用以下代码:

<iframe src="https://www.facebook.com/plugins/registration.php?
             client_id=113869198637480&
             redirect_uri=&
             fields=name,birthday,gender,location,email"
        scrolling="auto"
        frameborder="no"
        style="border:none"
        allowTransparency="true"
        width="100%"
        height="330">
</iframe>

该代码:

<div id="fb-root"></div>
<script src="https://connect.facebook.net/en_US/all.js#appId={YOUR_APP_ID}&xfbml=1"></script>

<fb:registration 
  fields="name,birthday,gender,location,email" 
  redirect-uri=""
  width="530">
</fb:registration>

在这两种情况下,我都使用了页面选项卡应用程序的APP_ID和该页面选项卡的canvas url,但我用正在使用的网站填写了网站字段

当我取出预先填写好的FB信息并填写表单时,接收页面上的var_dump会给出正确的信息,但当我将其与预先填写好的FB信息一起提交时,它会弹出一个对话框,上面写着:您正在这里注册APP_NAME_,如果您想注册,请单击继续,否则单击撤消(类似于此)当我点击“继续”时,什么也没发生


我使用Firebug检查了页面,我认为数据正在发送到另一个iframe,但我不知道如何访问它。我曾尝试将目标改为“顶级”、“自我”和“家长”,但也没有成功。我还尝试专门使用网站属性创建一个新应用程序,但同样失败。感谢您的帮助。

我认为您缺少了一些东西:

在这里您可以看到onvalidate属性,它包含在按下Register按钮后调用的js函数的名称,并将包含用户信息的整个对象传递给它。 问候;)
第二个代码中的Luca

重定向uri=“”需要一个值。它需要以您的站点url作为前缀。

据我所知,使用预填充信息时,
target
属性被破坏。也许这与确认弹出窗口出现时流程必须发生的方式有关,但是,目前还没有文件证明这两者不能一起使用。在任何情况下,无论您在属性中指定了什么,预填充的数据似乎都具有强制
target=\u top
的效果


在这种情况下,您必须指定一个外部页面地址作为
重定向uri
,并在那里处理数据,然后重定向回Facebook页面地址。如有必要,您可以使用查询字符串中的app_data参数传回一些数据。

很可能您已经被标记为已注册,并且正在接收FB connect to work的cookie/标头。如果是这种情况,您需要在facebook的应用程序管理页面中取消注册您的应用程序。一旦你这样做,按钮将再次工作

最后,如果用户已登录Facebook并已连接到 在你的应用程序中,按钮会显示Login,当 单击(但应用程序应使用 getLoginStatus方法,而不显示按钮)

您可以使用调试您的注册状态

FB.Event.subscribe('auth.statusChange', function(response) {
    if(!response.authResponse) return;
    console.log(response)
});

希望这能有所帮助。

那就让他们注册facebook吧。假设OP没有故意将其留空,那肯定是问题所在。我确实留空了,只是因为你误解了提问,重定向uri在示例中留空,因为它是由php生成的。我在live示例中使用了一个外部url,它可以在IE和Chrome中使用,但不能在FF中使用。测试区域在这里:。如果您点击Chrome或IE(9)中的register(注册)按钮,则会看到它重定向到一个页面,该页面显示已签名的_请求['registration']数组中的字段数,并列出密钥。但在FF中什么都没有发生。这显然是一个与你最初的问题中所说的完全不同的场景。您是说在FF中,当您在弹出窗口中单击“继续”时,弹出窗口将消失,并且不会发生重定向吗?使用FF 3.6,它似乎可以正常工作,我被重定向到一个页面,上面写着“签名请求注册字段有4个字段,它们如下:姓名、电子邮件、位置、性别”。在我自己的测试中,它总是对我有用。因此,它看起来可能与您的浏览器特别有关。我也在FF7中尝试过它,而且它似乎再次正常工作。我确实看到了关于不安全内容的警告,因此如果在某个地方设置了不加载此类页面的选项(我在FF设置中没有看到任何此类选项,但仍然值得检查),那么这可能是错误的。如果您还没有,您应该在另一台计算机上测试它,因为它可能在您特定的浏览器设置中。