对于仍在寻找的人,我通过使用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数据如何进入我的应用程序。
如果有人有更好的解决方案,我会很高兴看到它。