我正在iframe中创建一个Facebook应用。该页面大部分都在工作,但我想在页面中使用当前登录的用户名,用于自定义消息传递等。
我正在加载FB库:
<div id="fb-root"></div>
<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript" >
FB.init({
appId : '106832082707477',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
FB.getLoginStatus(function(response) {console.log("FB.getLoginStatus=" + response.status)});
</script>
我目前在沙盒模式下有页面,但是4个人中有两个接收FB.getLoginStatus =已连接,而另外两个获得FB.getLoginStatus = NotConnected。
对于那些没有连接的人,当我调用FB.api时,它会返回'undefined'作为用户名:
function testFBLoggedIn() {
//http://developers.facebook.com/docs/reference/api/user
FB.api('/me', function(response) {
alert(response.first_name);
}
}
我真的不想让用户登录我的应用程序,因为我不想尝试访问除first_name,last_name和name用户属性之外的任何内容。此外,这是用户必须执行的额外步骤,我们已经在当前流程中销售了客户端。
有没有人对如何持续处理Facebook用户名,除非抛出一个允许框有任何想法?
感谢。
答案 0 :(得分:4)
如果用户未连接,则您无法使用/me
路径,因为它指的是当前连接的用户。
您可以使用/uid
路径获取任何用户的名称,但问题是如果用户未与您的应用程序相关联,那么您就不知道他们的用户名。
所以如果他们没有连接,我认为你不能得到用户名。
答案 1 :(得分:0)
我目前正在开发一款应用,当我向/我/朋友进行API调用时,作为测试用户,它会返回用户ID,但不会返回名称。当我在真实的Facebook帐户中使用相同的应用程序时,它可以正常工作。
我怀疑这是因为测试用户的所有朋友也是测试用户。因此,如果您遇到类似的问题,请尝试使用真正的Facebook用户进行测试。