WebサイトでPHPSDKを使用しています。登録フォームとログインフォームを作成しました。
Facebookのログインリンクが生成され、ユーザーはアプリをクリックして承認します。それらは私のサイトにリダイレクトされ、アクセストークンを持っています。
$ this-> facebook-> api('/ me /');などのAPI呼び出しを使用できます。呼び出しをtryステートメント内に置き、例外をキャッチします。
それは完璧に動作します。
問題は、APIがすべて完了できず、例外がキャッチされるため、アクセストークンがランダムに期限切れになることです。これがなぜなのかはわかりませんが、私がやりたいのは、アクセストークンをシームレスに更新することです。つまり、新しいトークンを取得して、サイトでのユーザーセッションをシームレスに続行します。
したがって、私が行うことは、セッションでユーザーの場所を保存し、catchステートメントでユーザーをFacebookログインページにリダイレクトしてから、ユーザーに正常に再ログインすると、元の場所にリダイレクトします。
これは機能しますが、問題があります。これを持っている:
try
{
$me = $CI->facebook->api('/me');
}
catch(FacebookApiException $e)
{
//redirect to fb login lin
}
すべてのページで、サイト上のすべてのページのページ読み込み時間が基本的に2倍になります。FacebookPHPSDKは本質的に低速です。
1秒のページ読み込みの代わりに、2〜3秒かかります。私はそれをベンチマークしました、そしてそれはこのtry/catchのためです。
私に何ができる?ユーザーに多大な読み込み時間のコストをかけずに、許可されたユーザーのアクセスキーを維持/更新するにはどうすればよいですか?