2011-12-19 2 views
0

페이지 탭에서 실행되도록 간단한 앱을 설정했습니다. 앱의 사용을 승인 한 후 기본 정보 만 사용자가 해당 페이지를 좋아하는지 확인합니다. 그들이하지 않으면 진행하기 전에 페이지를 좋아할 것을 요구합니다. 그러나 그 시점에서 LIKE 버튼을 클릭하면 페이지가 새로 고쳐지지 않으므로 앱에 변경 사항이 표시되지 않습니다. 사용자는 매달린 채로 진행하고 계속 진행하려면 페이지 탭을 다시 클릭해야합니다. 시작하기 전에 페이지가 마음에 들면 모든 것이 정상적으로 작동하고 LIKE 버튼을 누르면 정상적으로 페이지가 새로 고쳐집니다.Facebook 페이지 탭 - "LIKE"버튼이 페이지를 다시로드하지 않습니다.

이유가 있습니까? 아니면 트릭을 놓치고 싶습니다 - 내 자신의 LIKE 버튼이나 다른 것을 추가해야합니까?

내가 facebook apps에 정말로 새로운 것에 감사하는 것에 대한 help.

EDIT - 내가 차이를 만드는 경우 Asp.Net C#을 사용하고 있습니다. 나는 좋은 문서를 찾기가 매우 어려웠다. 그래서 내가 할 수있는 한 최선을 다해서 풀어 냈다. 다음은 HTML 페이지 코드입니다.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title></title> 
<script src="http://connect.facebook.net/en_US/all.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    FB.init({ 
     appId: '9999999999', 
     status: true, // check login status 
     cookie: true, // enable cookies to allow the server to access the session 
     xfbml: true // parse XFBML 
    }); 
</script> 
<script type="text/javascript"> 
    window.fbAsyncInit = function() { 
     FB.Canvas.setSize({ width: 520, height: 1300 }); 
    } 
    // Do things that will sometimes call sizeChangeCallback() 
    function sizeChangeCallback() { 
     FB.Canvas.setSize({ width: 520, height: 1300 }); 
    } 
</script> 
</head> 
<body style="width:520px;margin:0; padding:0; border:0;font-family:Arial;font-size:12px;"> 
<form id="form1" runat="server"> 
<div id="fb-root"> 
    <div id="intro" runat="server" style="width:520px;background-color:#FFFFFF;"> 
     Enter our competition<br /> 
     <br /> 
     <asp:Button ID="authorise" runat="server" Text="authorise" OnClick="Authorise_Click" /> 
    </div> 
    <div id="voting" runat="server" visible="false" style="background-color:#FFFFFF;width:520px;padding:0px"> 
     <div id="notliked" runat="server" visible="false"> 
      You must LIKE our page before you can enter the competition 
     </div> 
     <div id="questions" runat="server" visible="false"> 
      <div id="week1" runat="server" visible="false"> 
       Q1 Q2 Q3  
      </div> 
      <div id="week2" runat="server" visible="false"> 
       Q4 Q5 Q6 
      </div> 
      <div id="entereddiv" runat="server" visible="false"> 
       You have already entered this week's competition. 
      </div> 
     </div> 

    </div> 
    <div id="terms" runat="server" style="color:Black;font-size:11px;width:450px;"> 

    </div> 
</div> 

</form> 
<script type="text/javascript"> 

    window.fbAsyncInit = function() { 
     FB.init({ appId: '9999999999', status: true, cookie: true, xfbml: true, oauth: false }); 

     // If like button pressed, refresh page 
     FB.Event.subscribe('edge.create', function (response) { top.location = 'http://www.facebook.com/pages/MY_PAGE_NAME/PAGE_ID?sk=app_9999999999'; }); 

    }; 
    (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> 
+0

일반적으로 페이지가 새로 고침됩니다. 다른 곳에서 사용해보십시오. https://www.facebook.com/cocacola –

+0

앱을 새로 고침했지만 앱을 승인 한 직후에 새로 고치지는 않습니다. 위에서 설명한대로 할 경우 응용 프로그램을 다시 시작하고 달리 클릭 한 다음 필요없는 위치에서 LIKE 단추를 사용하면됩니다. – Dave

답변

0

나는 이것을 실제로 분류했다. 나는 사용자가 응용 프로그램을 인증하지 않고도 isLiked 속성을 얻을 수 있다는 것을 알지 못했다. 이제 서명 된 요청을 확인하고 승인을 요청하기 전에 페이지를 좋아하게 만들도록 주변을 전환했습니다. 이 문제를 해결할 수 있습니다.

나는 아직도 페이스 북의 버그라고 생각한다.하지만이 프로젝트에서는이 솔루션이 할 수 없다.

0

Facebook JS API 동작을 듣고 페이지를 새로 고치는 콜백을 수행해야합니다.

사이트 끝 부분에이 코드 블록을 추가하십시오.

+0

그걸 시도해 볼게, 고마워. – Dave

+0

그게 작동하지 않았어, 지금은 너를 포함하여 HTML 코드를 추가하도록 편집했다. ID가 분명히 변경된 – Dave

+0

팬 페이지와 애플리케이션 탭 링크를 제공 할 수 있습니까? –

관련 문제