FB iframe选项卡 - 如果页面未被“喜欢”,则隐藏/更改内容

时间:2011-08-02 02:42:31

标签: facebook iframe facebook-like

这是怎么做到的?我已经看到了一些隐藏的iframe内容 - 在这种情况下,一个图形指向并说出“喜欢我们......”的效果 - 或者一个报价 - 例如,如果页面是“喜欢”。

我为此挖了一下,但没有运气。它已经完成了,但是我没有先见之明地注意到哪些FB页面正在做它......唉!

1 个答案:

答案 0 :(得分:2)

您需要一个Facebook应用程序才能实现这一目标。设置完成后,创建页面,当页面加载时,用户需要授权您的应用程序,以便您可以访问他们的个人信息,以查看他们是否喜欢使用某些FQL页面。下面的代码将检查Facebook用户是否喜欢该页面,但只有在用户允许访问您的应用程序时才会运行。

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
    FB.init({
        appId : 'yourAppId',
        status: true,
        cookie: true,
        xfbml : true
    });
    FB.getLoginStatus(function(response) {
        if (response.session) {
            var user_id = response.session.uid;          
            var page_id = "xxxx"; //The Page that you want to Like
            var the_query = FB.Data.query("SELECT uid FROM page_fan WHERE page_id = {0} and uid={1}", page_id, user_id);          
            the_query.wait(function(rows) {              
                  if (rows.length == 1 && rows[0].uid == user_id) {                 
                     $("#divWhenLiked").show();         
                  } else {                  
                     $("#divWhenNotLiked").show();
                  }          
            });      
        } else {        
            // user is not logged in   
            $("#divNoPermission").show();               
        }    
    });
</script>

在代码中,您会看到3个<div>标记,这些标记将根据用户是否允许您的应用程序显示,而不是喜欢该页面,并且喜欢该页面。在显示权限的<div>标记中,为了使其正常工作,您需要一个链接到您的应用程序的超链接,例如:

http://www.facebook.com/dialog/oauth?client_id=yourAppId&redirect_uri=http://yourWebsite/yourRedirectPage

这将显示来自Facebook的弹出窗口,要求用户允许该应用程序的许可。然后,它将重定向到您在链接中指定的重定向页面。在您的RedirectPage中,您只需在<body>标记中添加一段简单的重定向代码:

<script>
window.location.href = "http://www.facebook.com/pages/YourApp?sk=app_yourAppId";
</script>

您可以从Facebook应用程序页面获取超链接。希望这会有所帮助。