ユーザーがログインしているかどうかを確認するためにSDKを適切に使用していないように思えます。基本的には、コンテンツをif-elseステートメントでラップする必要があります。あなたが使用している codeigniter 用のプラグインがあるかどうかはわかりませんが、php-sdk では、最も簡単な用語で次のようになります。
include "facebook.php";
$facebook = new Facebook(array("appId"=>YOUR_APP_ID, "secret"=>YOUR_SECRET));
$me = $facebook->getUser();
$user = false;
if($me){ // still try and get user as getUser could return valid result
try{
$user = $facebook->api('/me');
catch(facebookAPIException $e){
$user = false;
$me = false;
}
}
if($user){ // display your content here
}else{// user not logged in
header("Location:".$facebook->getLoginUrl());
}
上記の例は最も単純な形式ですが、php SDK に関する情報はこちらにあります https://developers.facebook.com/docs/reference/php/ダウンロードして例を見ることができます。私が言うように、これは単純な php であり、codeigniter に統合されておらず、ほとんど単なる疑似コードです。コードの一部を貼り付けた場合、特に codeigniter の経験が豊富な他の人にとっては、これを解決するのに役立つ場合があります。しかし、私には、ユーザーが存在するかどうかを確認しておらず、コンテンツの表示を停止するステートメントでコンテンツを転送またはラップしていないように思えます。これがキャンバス アプリでどのように機能するかはわかりませんが、これが Web サイト認証で機能することはわかっています。これがキャンバス アプリの場合は、アプリの [認証された紹介] チェックボックスをオンにするか、ユーザーが認識されない場合は JS sdk を使用して上記のようにリダイレクトします。