2011-01-24 97 views
0

我想在我的.Net MVC3处理来自Facebook的DeAuth回调,以便我可以检索UserId并从我的数据库中删除用户。使用Facebook的DeAuth回调与C#SDK

我从this answer创建使用代码写入日志文件(用于调试)一个动作:

FacebookApp app = new FacebookApp(); 
string accessToken = app.Session.AccessToken; 
long userId = app.UserId; 

起初,我的代码失败,appnull。然后我试图将CanvasAuthorizeAttribute添加到Controller,这也没有多大帮助。我应该添加其他一些属性吗?还是有什么我错了?

编辑:

我使用的SDK 4.2.1版本。

编辑2: 感谢Pat我想通了,下面的代码做这项工作(没有在动作或控制器的任何属性)。

​​

回答

2

我做到这一点通过解析自带的signed_request当Facebook打你的DEAUTH页:

string signedRequestValue = Request.Form["signed_request"]; 
var app = new FacebookApp(); 
var sig = app.ParseSignedRequest(signedRequestValue); 
long userid = sig.UserId; 

我使用的SDK的以前版本,我不得不修改使ParseSignedRequest公众(它是私人的),但我相信这是您正在使用的最新版本4.2.1中的公共方法。

+0

谢谢你设置我在正确的道路:)。代码实际上比你所建议的更简单。 – 2011-01-25 12:02:43