2011-08-12 2 views
2

팬 페이지를 통해서만 실행되는 Facebook 응용 프로그램이 있습니다. 응용 프로그램에
이동합니다 http://apps.facebook.com/imageassistant/가 내 캔버스 페이지의 높이 나는 (당신이 실행하는 경우 수정 폭 값 때와 할 수있는만큼 증가시킬 필요가
facebook iframe 응용 프로그램 창의 크기를 조정하는 방법

을 (당신은이를 확인하기 위해 팬 페이지가 있어야합니다) 내 응용 프로그램 당신은 내가 내가 몇 가지 코드를 발견
내 응용 프로그램 내 모든 페이지의 크기를 조정해야

//index.php 
<?php 
include_once "fbmain.php"; // this file do all authentication parts 
//some codes 
?> 

파일 fbmain.php 포함 index.php 파일이)

를 볼 수 있습니다 facebook developer page

window.fbAsyncInit = function() { 
    FB.Canvas.setSize(); 
} 

// Do things that will sometimes call sizeChangeCallback() 

function sizeChangeCallback() { 
    FB.Canvas.setSize(); 
} 

에서이 관련 S와이

FB.Canvas.setSize({ width: 640, height: 480 }); // Live in the past 

하지만 내 응용 프로그램에서이 코드를 사용하는 방법을 알고하지 않고 어디 사람들을해야합니까? 이 코드를 앱의 모든 파일에 넣었습니까?
내 개발자 앱 페이지에서도 앱 설정을 변경해야하나요? (IFrame 크기를 표시하기 전에 스크롤 막대 또는 자동 크기 조정)
아무도 내가 어디에 넣어야하는지 등 완전한 답변을 게시 할 수 있습니까?
참고 : 나는 PHP SDK를

답변

3

을 사용하고하지만 내 응용 프로그램에서이 코드를 사용하는 방법을 모르는 내가 그 어디에해야합니까?

다음이 일을 올바른 방법의 숫자가 하나가되어 있습니다

<!doctype html> 
<html xmlns:fb="http://www.facebook.com/2008/fbml"> 
    <head> 
     <!-- YOUR HEADER CONTENT --> 
    </head> 
    <body> 
     <div id="fb-root"></div> 

     <!-- You Page Content HERE --> 

     <script> 
      window.fbAsyncInit = function() { 
      FB.init({appId: 'your app id', status: true, cookie: true, xfbml: true}); 
      FB.Canvas.setSize(); 
      }; 
      (function() { 
      var e = document.createElement('script'); e.async = true; 
      e.src = document.location.protocol + 
       '//connect.facebook.net/en_US/all.js'; 
      document.getElementById('fb-root').appendChild(e); 
      }()); 
     </script> 
    </body> 
</html> 

내가 각이 코드와 내 응용 프로그램에있는 모든 파일을 넣어 가지고 있습니까?

iFrame의 크기를 조정하려면 각 페이지마다 이러한 종류의 코드를 포함해야합니다.

내 개발자 앱 페이지에서도 앱 설정을 변경해야하나요?

이 기능을 사용하려면 개발자 앱에서 자동 크기 조정 옵션을 선택해야합니다.


콘텐츠 크기가 동적 인 경우 FB.Canvas.setAutoResize 사람도 고려하고 싶어합니다.

FB.Canvas.setSize 당신이 그것을 지연의 setTimeout을 사용할 수있는 경우에 너무 일찍 발사 곳 또한 전체의 문제가 올 수 있습니다 - 나는 최적의 대해로 200 밀리를 발견했습니다 경험 : 그냥

  window.fbAsyncInit = function() { 
      FB.init({appId: 'your app id', status: true, cookie: true, xfbml: true}); 
      window.setTimeout(
       function() { 
        FB.Canvas.setAutoResize(); 
       }, 
       200 
      ); 
      }; 
+0

다시 한 번 감사드립니다. 캔버스에 대한 너비 조정 폭을 설정하는 방법을 알려주시겠습니까? (수정 폭 500을 원한다고 가정하십시오) – Roshanck

+0

시도해 보셨습니까 : FB.Canvas.setSize ({width : 500}); – jBit

+0

예 works.tnx. 하나 더 문제. 아래로 스크롤하면 가끔 페이지가로드되는 것을 볼 수 있습니다 (페이지가로드되는 것을 볼 때 아래로 스크롤 할 때). 중지 할 수 있습니까? 크기 조정 코드가 없으면이 문제가 발생하지 않았습니다. – Roshanck

1

프로젝트에 javascript SDK 파일을 포함하십시오.

그리고 스크립트 태그의 src 속성을 사용하여이 index.php에이 코드를 작성하여 index.php 파일과에 위의 파일이 포함

<?php 
     echo '<script type="text/javascript"> 
     window.fbAsyncInit = function() { 
      FB.init({appId:'Your AppID here', status: true, cookie: true, 
         xfbml: true}); 
      FB.Canvas.setSize({ width: 640, height: 720 }); 
      }; 
    </script>';        
?> 

이 모든 지정된 폭과 높이로 캔버스 크기를 설정합니다 앱 내의 웹 페이지 :