1

PHP でアプリケーションのログイン ページを作成しています。私のアプリケーションは fconnect を使用してログインします。今、

スタンドアロンの Web アプリケーション (www.acdef.com) を開くと、fconnect login が表示されます。Facebook (apps.facebook.com/myapp) 内で開いた場合、fconnect ログインは表示されず、ユーザーに応じて、fb アクセス許可またはアプリのランディング ページのいずれかが表示されます。これが私がやったことです

if( (isset($_SERVER['HTTP_REFEREER']) && strpos($_SERVER['HTTP_REFEREER'], "facebook.com") !==false) || (isset($this->request->get['ref']) && strpos($this->request->get['ref'], "facebook.com") !==false))
{ 
   // I am in canvass
}
{
   // I am not in canvass
}

ただし、常に機能しているわけではありません。キャンバスにいるときでも、何度も fblogin ボタンが表示されます。

最善の解決策は何ですか?

-アジェイ

4

2 に答える 2

1

アプリがキャンバス内で開かれている場合は、$_REQUEST['signed_request']設定済みです。

if( isset($_REQUEST['signed_request']) )
{ 
   // I am in canvass
}
else
{
   // I am not in canvass
}
于 2013-02-27T10:43:01.807 に答える
0

アプリがiframe(fb キャンバス) にあるかどうかを確認し、それに応じて次のように動作できます。

<script type="text/javascript"> 
    if(window==window.top){ 
        top.location.href = '<?=$redirect_url?>';
    } 
</script>
于 2014-02-28T09:38:32.760 に答える