2017-04-02 25 views
0

我们的网站有FB登录,使用Katana项目的库实现。配置FB身份验证时,我将所需的权限字段设置为最小(电子邮件,名字,姓氏)。这是我们网站的标准账户注册,并且工作正常。c#mvc 5,facebook登录 - 如何在初始登录后询问额外的用户信息

但是,我们在网站中有第二种类型的用户,他们的帐户需要更多来自Facebook的数据,与他们的Facebook页面相关,如封面图片,用户帖子,页面描述等。如果用户决定改变他的帐户类型为第二个,我们想从facebook获取更多信息。

我可以以某种方式触发具有不同权限字段集的重新授权FB弹出窗口吗?此时用户使用FB登录,我们只需要更多的权限,就像使用不同的FacebookAuthenticationOptions配置重新登录一样。

回答

0

对于仍在寻找的人,我通过使用Facebook JavaScript API重新登录不同的权限集解决了我的问题。您可以初始化FB Api以允许后续交互:

 window.fbAsyncInit = function() { 
     FB.init({ 
      appId: '[APP_ID_HERE]', 
      autoLogAppEvents: true, 
      xfbml: true, 
      version: 'v2.9', 
      status: true, 
      cookie: true, 
      oauth: true 
     }); 
     FB.AppEvents.logPageView(); 
    }; 

    (function (d, s, id) { 
     var js, fjs = d.getElementsByTagName(s)[0]; 
     if (d.getElementById(id)) { return; } 
     js = d.createElement(s); js.id = id; 
     js.src = "//connect.facebook.net/en_US/sdk.js"; 
     fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 

请注意状态,cookie和oauth参数。不确定是否需要所有内容,但是当您使用额外权限重新登录时,它们将使浏览器存储授权令牌,然后您可以通过FB图形API轻松获取数据。通过这种方式,我得到了一个包含我需要的所有数据的json对象,然后通过ajax请求将该json发布到我的网站。这就是Facebook数据如何进入我的应用程序。

如果有人有更好的解决方案,我会很高兴看到它。

相关问题