문제

JavaScript에서 구현 한 간단한 보드 게임 인 Facebook 응용 프로그램을 작성하고 있습니다. Facebook은 JavaScript 응용 프로그램이 iframe 내에서 실행되도록하는 것 같습니다. <fb:iframe>. 나는 단지 JavaScript에 사용자의 ID를 알리기 위해 사용자의 차례인지 아닌지 사용자에게 알릴 수 있지만 FB : iframe 내에서 Facebook 데이터에 대한 문서를 찾을 수는 없습니다. Facebook API를 잘 이해하지 못하기 때문에 기본적인 Conecpt가 누락되었을 것입니다.

도움이 되었습니까?

해결책

Facebook의 API는 따라 가기가 매우 어렵고 문서는 매우 열악합니다. 당신은 JavaScript에 대해 옳습니다 ... 일반 JavaScript는 Facebook의 iframe 내부에서만 작동합니다. 그렇지 않으면 FBJS라는 필터링 된 JavaScript의 하위 집합으로 제한됩니다. 문서에서 FBJ에 대해 안전하게 무시하고 iframes에 집중할 수 있습니다.

iframe로드

내가 언급 할 첫 번째는 그게 an입니다 <fb:iframe> 태그는 실제로 많은 물건으로 렌더링됩니다. src 기인하다. 따라서 이와 같은 태그를 Facebook 페이지에 넣으면 다음과 같습니다. <fb:iframe src="http://example.com/page?x=y">, 사용자의 브라우저에로드 할 때 끝나는 것은 다음과 같습니다.

<iframe src="http://example.com/page?x=y&fb_sig_in_iframe=1&fb_sig_locale=en_US&fb_sig_in_new_facebook=1&fb_sig_time=1246340245.3338&fb_sig_added=1&fb_sig_profile_update_time=1242155811&fb_sig_expires=1246345200&fb_sig_user=000000001&fb_sig_session_key=2.d13uVGvWVL4hVAXELgxkZw__.3600.1246345200-000000001&fb_sig_ss=mZtFjaexyuyQdGnUz1zhYTA__&fb_sig_api_key=46899e6f07cef023b7fda4fg2e21bc58&fb_sig_app_id=22209322289&fb_sig=bbc165ebc699b12345678960fd043033">

Facebook은 SRC에 많은 물건을 추가합니다. 사용자의 Facebook ID를 알려주는 매개 변수는 fb_sig_user (000000001은 여기). 나는 당신의 앱이 "FBML 앱"으로 설정되었다고 가정합니다. <fb:iframe> "iframe 앱"에 태그. 그럼에도 불구하고, 렌더링 방법은 두 경우 모두 비슷하며, 당신은 당신에게 추가 물건을 얻습니다. src "iframe 앱"도 문서화하십시오.

그러나 이것은 Iframe의 첫 번째로드에서 Facebook 사용자 ID를 전달합니다. iframe 내의 후속 작업은 명시 적으로 전달하지 않으면 해당 사용자 ID에 액세스 할 수 없습니다.

Facebook Connect

Iframe 내에서 Facebook과 상호 작용하려면 Facebook Connect JavaScript 라이브러리가 들어 오는 곳입니다. Facebook Connect를 설정하는 데 가장 적합한 지침은 아마도 이 위키 페이지, 그러나 여전히 약간 어둡습니다. Facebook Connect는 완전히 외부 사이트 또는 iframe 내부의 일반 콘텐츠에만 사용할 수 있습니다. 후자의 범주에 속하므로 해당 링크의 지침을 따르고 2 단계 (Featureloader의 경우)의 첫 번째 코드 줄을 사용하면 괜찮을 것입니다.

FeatureLoader.js 스크립트를 포함하고 FB.init이라고 불리는 경우 일반적으로 FB Connect를 사용하여 실행해야합니다. 당신은 당신과 상호 작용할 수 있어야합니다 API 그때부터 아웃. 그만큼 users.getLoggedInUser() 메소드는 JavaScript를 통해 iframe 내부의 현재 사용자 ID를 제공합니다.

도움이되기를 바랍니다.

다른 팁

2011 년 3 월 현재 FB는 IFRAME를로드하라는 요청을 게시하고 있습니다. Method = "post"및 target = "iframe_canvas"와 함께 양식 조치를 보내고 입력 유형 = "Hidden"이 "signed_request"가 있습니다.

CNA는 Facebook API를 사용하여 전화하여 사용자 ID를 얻습니다.

user.getLoggedInuser

해당 값에 액세스 한 다음 echo ()를 사용하여 html에 javaScript 변수로 추가하여 JavaScript 코드에서 사용할 수 있도록합니다.

노력하다 Env.user, 로그인 한 사용자의 ID가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top