登録してログインする必要がある通常のユーザーと、Facebook アカウントを使用してログインできる Facebook ユーザーです。その後、各ユーザーは自分の個人用リストにビデオを追加したり、同じリストからビデオを削除したりできます。問題は、データベースにアクセスして、各ユーザーが追加したビデオのリストをロードできるように、通常のユーザーと Facebook ユーザーがログインした後、それらをどのように区別するかということです。私のデータベースには、通常のユーザー テーブル、Facebook ユーザー テーブル、ビデオ テーブルの 3 つのテーブルが含まれています。
1 に答える
Fb.getLoginStatus のレスポンス オブジェクトを使用して、facebook からログインしているユーザーを識別できます。
ユーザーがアプリを認証したかどうかを判断するには:
FB.getLoginStatus(function(response) { if (response.status === 'connected') { // ユーザーがログインしてアプリを認証し、 // response.authResponse が提供する // ユーザーの ID、有効な// アクセス トークン、署名されたリクエスト、および // アクセス トークンと署名されたリクエストがそれぞれ期限切れになる時間 var uid = response.authResponse.userID; var accessToken = response.authResponse.accessToken; } else if (response.status === 'not_authorized') { // ユーザーは Facebook にログインしていますが、// アプリを認証していません } else { // ユーザーは Facebook にログインしていません。 } });
応答オブジェクト
ユーザーがアプリケーションを認証した場合、応答オブジェクトは次のようになります。
{ status: 'connected', authResponse: { accessToken: '...', expiresIn:'...', signedRequest:'...', userID:'...' } }
応答オブジェクト内の authResponse オブジェクトの存在をテストすることで、ユーザーがアプリを認証したことを確認でき、Facebook API へのさらなる呼び出しを開始できます。authResponse オブジェクトが存在しない場合、ユーザーは Facebook にログインしていないか、アプリを承認していません。
authResponse オブジェクトの最も有用な部分は、userID (ユーザーの ID) と accessToken です。アクセス トークンを使用して、そのユーザーに代わって Facebook API への要求を行うことができます。userID は、アプリに存在するユーザーの一意の識別子です。