2012-07-19 125 views
0

我正在使用以下代码进行Facebook登录。Facebook登录无弹出窗口

function login(){ 
      FB.login(function(response) { 
        if (response.authResponse) { 
         FB.api('/me', function(response) { 
          alert(JSON.stringify(response)) 

          }); 
        } else { 
         console.log('User did not authorize.'); 
        } 
       }); 
     } 

我对button.FB.login的点击()调用给用户那里应该输入用户名和密码的弹出窗口调用登录方法。

我的要求是做一个无声的登录,即登录没有弹出窗口。我的用户名和pswd是硬编码的暂时。如何将凭证传递到登录API没有用户干预。我知道硬编码不是好的做法,但稍后我将从用户控件获取凭证。

我该如何做到这一点。任何帮助非常感谢。

+0

我认为弹出窗口现在需要出于安全原因。自己取得证书绝对不是一个好主意,因为你可以轻易地将它们存储起来,而且你根本无法访问它们。 – 2012-07-19 06:35:48

+0

谢谢。但我想编程方式在弹出框中填写文本框,并在弹出窗口中生成登录按钮上的点击事件作为最终尝试。由于弹出窗口是另一个窗口,这种方法在JavaScript中工作吗? – 2012-07-19 06:45:06

回答

2

你不能。托管登录的框架是一个显示在Facebook上托管的表单页面的iFrame。 Facebook不希望计算机将人员登录到他们的网站以获得各种反垃圾邮件和安全原因。

+0

我想知道你们是否正在设置自动化测试?根据测试技术的不同,有些将以客户身份为您输入文字。 – 2012-07-19 07:22:27

+0

不是真正的测试。它是我不想要弹出窗口,因为当我的包含登录按钮的网页在桌面浏览器中运行时,该行为是确定的,但是该页面旨在运行在移动浏览器中,并且我不确定它在那里的表现如何。因为我没有设备测试,我想放弃登录新窗口的想法。 – 2012-07-19 07:37:41

+0

在Mobile,android&iPhone中,SDK管理和设计自己的定制Facebook对话窗口。您可以调用显示对话框的方法,并管理回调方法。 – 2012-07-19 07:44:18

1

这是不可能的几个原因

  1. 这是对Facebook的政策,以让凭据第三方
  2. 用户应始终能够验证他们给他们的凭据页面的身份。

我确定你不想要你的用户打破这个政策吗?