2012-01-26 5 views
0

Я нашел здесь код для NON-PHP Выявление HTML, когда нажата кнопка Like, но не работает для меня. Код выглядит следующим образом:Facebook Reveal Without PHP

<!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" xml:lang="en"> 
<head> 
<link rel="stylesheet" type="text/css" href="style.css" /> 
<style type="text/css"> 
body { 
width:520px; 
margin:0; padding:0; border:0; 
font-family: verdana; 
background:url(repeat.png) repeat; 
margin-bottom:10px; 
} 
p, h1 {width:450px; margin-left:50px; color:#FFF;} 
p {font-size:11px;} 

#container_notlike, #container_like { 
display:none 
} 
</style> 
<script type="text/javascript" src="/js/jquery-1.6.2.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 

     FB.login(function (response) { 
      if (response.session) { 

      var user_id = response.session.uid; 
      var page_id = "167544069999229"; 
      var fql_query = "SELECT uid FROM page_fan WHERE page_id = " + page_id +  "and uid=" + user_id; 
      var the_query = FB.Data.query(fql_query); 

      the_query.wait(function (rows) { 

       if (rows.length == 1 && rows[0].uid == user_id) { 
        $("#container_like").show(); 

        //here you could also do some ajax and get the content for a "liker" instead of simply showing a hidden div in the page. 

       } else { 
        $("#container_notlike").show(); 
        //and here you could get the content for a non liker in ajax... 
       } 
      }); 


     } else { 
      // user is not logged in 
     } 
    }); 

}); 
</script> 
<meta http-equiv="Content-Type" content="text/html; 
charset=iso-8859-1" /> 
</head> 
<body> 
<div id="fb-root"></div> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script> 
FB.init({ 
    appId: '270349276366373', 
    status: true, 
    cookie: true, 
    xfbml: true 
}); 
</script> 

<div id="container_notlike"> 
YOU DONT LIKE 
</div> 

<div id="container_like"> 
YOU LIKE 
</div> 
</body> 
</html> 

Я изменил APPID и PageId по мере необходимости, но не работает, и он продолжает пытаться вызвать всплывающее окно.

В конечном итоге он будет содержать динамический контент в файле aspx vb.net, поэтому PHP не доступен для меня.

Любые идеи, может ли это быть сделано на стороне сервера через запрос SOAP или REST?

+0

Попробуйте C# SDK, Библиотеки DLL будет совместима с vb.net, однако не так много примеров, связанных с отображением синтаксиса vb, поэтому вам придется преобразовать его поверх себя. – DMCS

ответ

0

вы должны ждать, пока не будет загружен скрипт и FB ва является первонач, попробуйте этот поток ... если у вас есть проблемы с логином

<body> 
<div id="fb-root"></div> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script> 
    // fired when script is loaded 
    window.fbAsyncInit = function() { 
     FB.init({ 
     appId  : '', // App ID 
      channelUrl : '', // Channel File 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 
     //do some stuff here (Login) 

    }; 
    // Load the SDK Asynchronously 
    (function(d){ 
     var js; 
     var id = 'facebook-jssdk' 
     var ref = d.getElementsByTagName('script')[0]; 
     if (d.getElementById(id)) {return;} 
     js = d.createElement('script'); js.id = id; js.async = true; 
     js.src = "//connect.facebook.net/en_US/all.js"; 
     ref.parentNode.insertBefore(js, ref); 
    }(document)); 
</script>