使用Facebook C#SDK自动登录?

时间:2012-01-17 16:08:31

标签: facebook-c#-sdk

我一直在使用Facebook C#SDK,虽然有一件事我无法实现:

方案:

场景1:用户未登录Facebook.com。用户访问mysite.com。 Mysite.com显示Facebook Connect按钮。用户单击该按钮进行登录,并重定向到mysite.com/mainsite。

场景2:用户已登录facebook.com。然后用户访问mysite.com。用户被重定向到mysite.com/mainsite。

场景3:用户使用facebook登录mysite.com。用户关闭facebook.com内的会话。 Mysite.com注销用户。

问题:

场景1和3工作。但出于某种原因,facebook c#sdk只能在刷新mysite.com一次后才能执行方案2。

我下载了样本。是的。它也发生在样本中。

我在facebook.com上打开会话。然后访问mysite.com。什么都没发生。没有登录。然后我刷新mysite.com和bam。我已登录。

不应该检测第一页上是否有会话加载?为什么不呢?可能吗?怎么样?

我没有看到使用facebook c#sdk进行自动登录的实例。

注意:用户已经为app提供了必要的权限。 注意:我目前正在使用SDK示例。

1 个答案:

答案 0 :(得分:1)

您需要使用Javascript执行此操作。您可以在页面加载时使用以下代码检测用户的状态(请注意,这是客户端上的Javascript):

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.
  }
 });

您可以在此处详细了解:https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/