Keith Donald さんとRoger Hughes さんの春のチュートリアルを見ると、流れは次のようになります。
IF user is signed in to to application THEN
IF user is signed in to Facebook
read Facebook data,
display Facebook data
ELSE (facebook handles)
ask user to loging to Facebook
goto if user is signed in to Facebook step
ENDIF
ELSE
ask user to sign in
create user object with an id
when user has signed in, go back to the beginning
END IF
ただし、私のアプリケーションは facebook キャンバスで実行されるため、アプリケーション ステージへのサインインをスキップしたいと考えています (既に facebook で実行されているアプリケーションにユーザーが明示的にログインすることは意味がないため)。次のようになります。
create a user (session scope)
IF user is signed in to Facebook
update user object with facebook id
read Facebook data,
display Facebook data
ELSE (facebook handles)
ask user to loging to Facebook
goto if user is signed in to Facebook step
ENDIF
サンプルは本当にありがたいです。