【发布时间】:2013-04-30 19:49:55
【问题描述】:
如何在不使用 fb-login 按钮的情况下从我的 facebook connect 网站注销用户?我想从代码隐藏 (c#) 中做到这一点?
【问题讨论】:
如何在不使用 fb-login 按钮的情况下从我的 facebook connect 网站注销用户?我想从代码隐藏 (c#) 中做到这一点?
【问题讨论】:
我发现FB.logout() 只能选择通过 Javascript 执行此操作。似乎有点奇怪,没有来自代码隐藏的 API 来做同样的事情。
【讨论】:
如果你只是想要一个简单的链接来注销用户,你可以形成一个这样的 url:
https://www.facebook.com/logout.php?access_token=ACCESS_TOKEN&confirm=1&next=REDIRECT
只需将ACCESS_TOKEN 和REDIRECT 替换为适当的值即可。 Facebook 时不时地改变这一点,所以你必须注意这一点。这仅适用于浏览器,但这样做的好处是用户不必等待 JavaScript 库加载。
【讨论】:
您可以通过 facebook.API 类 (facebook.dll) 的实例轻松完成此操作。 只需调用 _api.LogOff()
【讨论】:
我的痛苦经历告诉我你必须有回报(false);在 FB.Connect.logout() 之后;调用如下:
FB.Connect.logout(doOnUserLogout());返回(假);
否则,它会看起来像是正在注销,模式对话框说明了这一点,但它不会将用户注销。
我偶然发现了这一点,因为它又没有记录在案。
【讨论】:
似乎 ConnectSession 在注销方法中没有任何代码。它只是
void Logout(){ }
什么都没有。 Login(){}也一样
所以基本上你需要使用 java-script 版本
【讨论】:
curl 和类似 preg_match("/a href=\"\/logout.php(.*?)\"/", $page, $logout_param); 之类的东西难道不可以吗?
那么……
curl_setopt($ch, CURLOPT_URL, 'http://m.facebook.com/logout.php' . $logout_param[1]); curl_exec($ch);
??
【讨论】:
至少在php api中有一个注销方法。为了使其正常工作,注销方法会将用户重定向到 facebook.com 中的 url,然后将您重定向回您的网站
$facebook->注销(“http://site.com/returnAfterLogout.php”)
但是我发现在那个请求中,javascript api 仍然认为 php api 仍然认为他已登录,并且在您尝试执行 api 请求之前它会 引发异常。
【讨论】:
我在 Web 视图中使用:
webview.loadUrl("http://www.facebook.com/logout.php?confirm=1");
【讨论】: