我一直在使用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示例。
答案 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/