2013-07-02 43 views
0

如何檢查用戶是來自Facebook還是直接來自網站?我已經使用這種方法$_REQUEST['signed_request'],但他們只回應一次。如何識別使用PHP的Facebook應用程序畫布/網站之間的平臺?

您的迴應是高度讚賞我

if(isset($_REQUEST)){ 
      if(isset($_REQUEST['signed_request'])){ 
       $this->result = "fb_platform"; 
      }else{ 
       $this->result = "web_platform"; 
      } 
} 
+0

基於JavaScript的解決方案,可以爲你工作,我已經改變了我的代碼? – complex857

+0

@ complex857請詳細說明 –

+0

在服務器端,只有第一個請求是由facebook製作的(實際上它是由用戶的瀏覽器製作的,但是從Facebook設置的參數),後來的只是鏈接或形式,並且在iframe ,從服務器端來看,這沒有什麼區別。但是,您可以通過javascript檢測您是否在iframe中。 – complex857

回答

0

經過一番堆棧溢出問題的評論

<script> 
//if a user is coming from 
//facebook or directly from the site. 

function platformAuthentication(){ 

    var platform = "fb_platform"; 
    if(window.self === window.top) { 
     platform = "web_platform"; 
     $("#platform_key").val(platform); 
     $("#platform_form").submit(); 
    }else{ 
     platform = "fb_platform"; 
     $("#platform_key").val(platform); 
     $("#platform_form").submit(); 
    } 

} 
setTimeout(platformAuthentication,500); 
</script> 


</head> 
<body> 
<!--hidden form for user tracking, 
    if a user is coming from fb/direclty 
    from the site 
--> 
<form id="platform_form" name="platform_form" method="post" target="iframe_platform" action="url"> 
<input type="hidden" id="platform_key" name="platform_key" /> 
</form> 
<iframe id="iframe_platform" name="iframe_platform" src="url"> 
</iframe> 
相關問題