2011-09-09 2 views
5

사용자가 내 외부 사이트의 Facebook 벽에 게시 할 수있게하려고합니다.FB.ui() 사용자가 아직 로그인하지 않은 상태에서 비동기 요청으로 Safari에 오류가 발생했습니다.

Safari에서 문제가 발생했습니다. 사용자가 로그인하지 않은 경우, 즉 FB.login()을 호출하는 흐름을 수행하지 않은 경우 FB.ui()를 호출 할 때 다음과 같은 JS 오류가 발생합니다.

TypeError : 'undefined'가 아닙니다. 개체 ('b.fbCallID = a.id'평가)

그러나 로그인하면 대화 상자가 잘 보입니다.

FB.ui()가 콜백 함수에서 호출되었습니다. 내 서버에서 고유 URL을 가져온 다음 FB.ui()를 호출합니다. FB.ui()를 직접 호출하면 잘 작동하지만 비동기 일 때는 작동하지 않습니다. 에 관계없이 상태 여부 기록의,

 retrieveUrl(param1, param2, function(result) { 
      FB.ui({ method: 'feed', 
        description: 'My Description', 
        display: 'dialog', 
        link: result.uniqueUrl, 
        picture: 'http://foo.com/bar.jpg' 
      }, function(response) { 
       if (response && response.post_id) { 
        //Posted message 
       } else { 
        //Not posted message 
       } 
      }); 
     }); 

이 다른 브라우저에서 작동 :

여기에 코드입니다.

+0

동일한 문제가 나타납니다. – DuckMaestro

답변

4

FB.UIServer에서 렌더링 할 새 창/팝업/iframe 용 Safari에서 사용자가 시작한 동작 (클릭)시 FB.login 또는 FB.ui 메서드를 호출해야합니다.

형식 오류 : 당신이 차단됩니다 네트워크 콜백 이벤트 및 발생 기술 된 예외에 이러한 메서드를 호출하려고하면

'정의되지 않은'는 b.fbCallID = a.id ('평가 객체가 아닌 ')

사용자가 페이지와 상호 작용하기 전에 고유 한 URL을 검색 한 다음 버튼을 클릭 할 때 피드 대화 상자를 표시 할 수 있습니까?

+0

아니요, 분명히 할 수 없습니다. 내 서버가 먼저 고유 한 코드를 생성해야합니다. 방금 FB.ui()를 사용하는 대신 리디렉션을 했으므로 괜찮습니다. – pricklypear

+0

아마도 고유 코드가 페이지와 함께 생성 될 수 있습니까? Meh. 멀리 방향을 바꿉니다! – funrob