[英]Fb.api undefined user
我有以下問題:
用戶登錄Facebook后,如果我運行以下代碼:
FB.api('/me', function(user) {
alert(user.name);
});
它彈出一個帶有“ Udefined”字樣的警報。
但是,如果我以以下方式更改代碼:
FB.api( /[MY_REAL_FACEBOOK_ID], function(user) {
alert(user.name);
});
它以正確的方式響應。
怎么可能? 為什么“ /我”永遠不起作用?
使用下面的代碼來克服未定義的問題:
window.fbAsyncInit = function() {
// init the FB JS SDK
FB.init({
appId : your_app_id,
status : true,
xfbml : true
});
// Additional initialization code such as adding Event Listeners goes here
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
alert("connected");
connecter=true;
FB.api('/me', function(user) {
alert(user.name);
alert(user.first_name);
alert(user.last_name);
alert(user.email);
});
}
});
我認為您可能是在應用而非用戶的上下文中查詢“ / me”。 該文檔沒有盡可能明確,但是我遇到了同樣的問題。
您可以使用FB.getLoginStatus嗎?
設置FB.init后,將調用FB.getLoginStatus,類似於下面的內容。 可能會有更好的方法來執行此操作,但這對我有用。
希望這會有所幫助:
FB.getLoginStatus(function (response) {
if (response.session) {
// logged in and connected user, someone you know
graphUrl = "https://graph.facebook.com/me?access_token=" + response.session.access_token + "&callback=displayUser"
var script = document.createElement("script");
script.src = graphUrl;
document.body.appendChild(script);
} else {
// no user session available, someone you dont know
}});
function displayUser(user) {
alert(user.name);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.