3

私はFacebookアプリに取り組んでいますが、認証システムがどのように機能するかについて理解していないことがあります。

基本的なセットアップはこれです

キャンバスURL=domain.com/facebook

これは、Flashアプリケーションを提供するHTMLページであるdomain.com/facebook/appを指すFBMLIframe要素を含む単純なページです。

Flashアプリケーションは、アプリケーションサーバーに追加のデータを要求します。これらの要求の一部は、Facebookデータ(フレンドIDのリストなど)を要求します。

したがって、Flashはdomain.com/resources/facebook/friendsにリクエストを送信します。これは、Facebookインスタンス(PHPライブラリ)を作成し、APIへの必要な呼び出しを実行してデータを返すPHPページです。

ただし、このURLへのリクエスト(フラッシュによる)は検証されないため、ログインにリダイレクトされ、その後、auth_tokennextの2つのパラメーターを使用してキャンバスURLにリダイレクトされます。したがって、要求は有効ですが、リダイレクトによってフラッシュ呼び出しが中断されます。

だから、私はこれらの他のAPI呼び出し(それ自体がFacebookのAPI呼び出しをメイスするとき)を最初からFacebookで利用できるようにする方法を理解しようとしています。

4

2 に答える 2

1

「require_login()」行の代わりに以下のコードを配置して解決します

if (isset($_GET['auth_token'])) {
 $sess_data=$facebook->api_client->call_method('auth.getSession',array('auth_token'=>$_GET['auth_token']));
 $facebook->set_user($sess_data['uid'],$sess_data['session_key'],$sess_data['expires']);
 $user=$sess_data['uid'];
}
if (!$sess_data) {
 $user=$facebook->require_login();
}
于 2010-01-24T20:01:01.207 に答える
1

わかりました、私はそれを理解しました。

結局のところ、Flash はすでにリダイレクトに従っています。私がする必要があるのは、(キャンバス URL で) 承認要求 ( auth_token と next の存在によって示される) があったこと検出が次の URL にリダイレクトされます (基本的に、auth_token を元のリクエストに転送します)。

したがって、上で述べたこととは反対に、リダイレクトによってフラッシュ呼び出しが中断されることはありませんでした。有効なリクエストになるのに十分なデータがなかっただけです。

于 2009-01-27T20:55:26.543 に答える