0

페이스 북의 Javascript SDK를 처음 사용합니다. 이 API를 사용하여 응용 프로그램을 만들려고합니다. 그러나 FB.api 메서드를 사용하는 동안 힘든 일이 있습니다. 어떻게 든 FB.api 메서드가 매번 제대로 작동하지 않습니다. 때로는 응답을 제공 할 것이다 (나는 단지 response.name에 접근 중이다). 다른 시간에는 제대로 호출되지 않을 것이다. 버튼과 같은FB.api가 매번 작동하지 않음

window.fbAsyncInit = function() { 
FB.init({ 
    appId  : 'my_app_id', // App ID 
    status  : true, // check login status 
    cookie  : true, // enable cookies to allow the server to access the session 
    oauth  : true, // enable OAuth 2.0 
    xfbml  : true // parse XFBML 
}); 
FB.getLoginStatus(function(response) { 
    if (response.authResponse) { 
    alert('user is:'+response.status); 
    userId = response.authResponse.userID; 
    FB.api('/me',function(response) { 
    alert('Inside FB.api function'); 
    document.getElementById("userInfo").innerHTML = 'Welcome <img src="https://graph.facebook.com/'+ response.id + '/picture" style="margin-right:5px"/>' +response.name + '!'; 
    }); 
    } 
}); 
}; 

다른 방법 FB.ui 및 FB.getLoginStatus와 페이스 북은 예상대로 작동하고 있지만 FB.api 다른 사람으로 원활한 방식으로 작동하지 않습니다. 그 이유는 무엇입니까? 문제를 확인하도록 도와주세요.

+0

:/사람들이 쉽게 읽을 수있는 방식으로 게시물을 형식화하십시오. – Lix

+0

FB.api ('/ me')'를 호출하면 어떤 오류가 발생합니까? – Lix

답변

0

저 코드는 잘 작동하지만 응답 변수의 이름을 변경하려고 할 수 있습니다. FB.api 콜백 내부에는 의심 할 여지없이 문제를 일으킬 두 가지 응답 변수가 있습니다. 그들을 변경하고 다른 결과를 얻을보십시오.

FB.getLoginStatus(function(loginResponse) { 
    if (loginResponse.authResponse) { 
    alert('user is:'+loginResponse.status); 
    userId = loginResponse.authResponse.userID; 
    FB.api('/me',function(apiResponse) { 
    alert('Inside FB.api function'); 
    document.getElementById("userInfo").innerHTML = 'Welcome <img src="https://graph.facebook.com/'+ apiResponse.id + '/picture" style="margin-right:5px"/>' +apiResponse.name + '!'; 
    }); 
    } 
}); 

가능한 경우 페이지에 다른 영향이 있습니다. 귀하의 페이지에 대한 링크가 있습니까?

+0

답장을 보내 주셔서 감사합니다, 애비. 나는 응답 변수를 편집하고 알리려고 노력할 것이다. 지금 당장 응용 프로그램을 개발 중입니다. –

+0

아직 운이 없습니다. 변수 이름을 변경하려고 시도했으며 스크립트가 동일한 방식으로 작동합니다. –

+0

확인. 실패 할 때 실제로 어떤 일이 일어나고 있습니까? 오류 메시지가 나타 납니까? 페이지에 대한 링크가 있습니까? – Abby

2

나는 똑같은 문제가있었습니다. 이 답변은 올바른 방향으로 나를 지적 :

FB.api does not work when called right after FB.init

내가 올바른 이벤트에 가입했다 내 문제를 해결하기 위해. 내 경우에는 내가 같은 문제가 있었다 FB.init

FB.Event.subscribe('auth.authResponseChange', function(){ 
    FB.api('/me',function(r){ 
    console.log(r.id); 
    if (!r || r.error) { 
     alert('Error occured'); 
     } else { 
     alert(r.name); 
     }   
    }); 
}); 
+0

뭔가 다른 것으로 나타났습니다. FB.api를 호출하기 전에 DOM을 수정하면 FB.api가 실패합니다. –

0

후 'auth.authResponseChange을'입니다. FB.api는 내 앱의 어느 시점에서 자동으로 작동을 멈췄습니다. DOM 조작으로 인한 것임을 알았습니다.

<div id="fb-root"></div> 

복제본 또는 무엇이든. 그 시점을 확인해야합니다. 그것은 Johan Strydom의 문제처럼 보입니다.

관련 문제