0

Facebookアカウントにログインしていないと、アプリケーションが表示され(それでも)、そのURLを書き込むことができるという問題があります。言い換えれば、Facebookの「匿名ユーザー」は私のアプリケーションを見ることができます。

私が知っていることは、ログに記録されていないユーザーが私のアプリケーションを見ることができず、Facebookにログインするようにリダイレクトされるのを防ぐにはどうすればよいですか?

自分のFacebookアプリケーションの構成で行うことはできますか?または、SDKまたはJS Facebookでプログラムする必要がありますか?誰かがその方法のページや例をお勧めできますか?

注:アプリにはCodeIgniterでPHPを使用しています。

4

2 に答える 2

0

ユーザーがログインしているかどうかを確認するために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 を使用して上記のようにリダイレクトします。

于 2012-08-01T17:05:18.357 に答える
0

他のユーザーがアプリを表示できない場合は、ほとんどの場合、アプリをサンドボックス モードから解除するのを忘れているか、人口統計学的に制限している可能性があります - アプリの設定でそれを変更してください

{編集: 質問を編集して、以前とはほぼ逆にしました

PHP サンプル アプリには、現在のユーザーがアプリを使用しているかどうかを確認するコードが含まれており、この場合、さまざまな操作 (認証ダイアログへのリダイレクトを含む) を実行できます。

于 2012-08-01T09:57:25.447 に答える