0

ユーザーが ASP.NET MVC4 で Facebook に既にログインしているかどうかを確認したい。Facebook C# SDK を使用しています。Facebookからaccess_tokenを取得するための次のコードがあります。

  public ActionResult FacebookCallback(string code)
    {
        var fb = new FacebookClient();
        dynamic result = fb.Post("oauth/access_token", new
        {
            client_id = "XXXXXXXXXXXXXX",
            client_secret = "XXXXXXXXXXXXXXXXXXX",
            redirect_uri = RedirectUri.AbsoluteUri,
            code = code
        });

        var accessToken = result.access_token;

        Session["AccessToken"] = accessToken;

        fb.AccessToken = accessToken;

        dynamic me = fb.Get("me?fields=first_name,last_name,id,email");
        string email = me.email;

        FormsAuthentication.SetAuthCookie(email, false);
        return RedirectToAction("Index", "Home");
    }

ユーザーがすでにログインしているかどうかを確認する方法がわかりません。助けてください。

4

1 に答える 1

0

FB.getLoginStatus私の意見では、Facebook の JavaScript SDK をチェックアウトする意思がある場合、必要な情報を提供する方法が最も簡単な方法です。

Facebookの開発サイトから取得:

FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
    // the user is logged in and has authenticated your
    // app, and response.authResponse supplies
    // the user's ID, a valid access token, a signed
    // request, and the time the access token 
    // and signed request each expire
    var uid = response.authResponse.userID;
    var accessToken = response.authResponse.accessToken;
  } else if (response.status === 'not_authorized') {
    // the user is logged in to Facebook, 
    // but has not authenticated your app
  } else {
    // the user isn't logged in to Facebook.
  }
});

ここにもuser_online_presence拡張許可があります。おそらくあなたが望むものではありませんが、FQL を使用すると、ここでフィールドを要求できますが、これはユーザーが Facebook ユーザー チャットにログインしている場合にのみ返されることに注意してください。online_presence

于 2013-10-02T12:40:13.897 に答える