使用Facebook的DeAuth Callback和C#SDK

时间:2011-01-24 15:08:51

标签: asp.net-mvc facebook-c#-sdk

我正在尝试在我的.Net MVC3中处理来自Facebook的DeAuth回调,以便我可以检索UserId并从我的数据库中删除用户。

我使用this answer中的代码创建了一个写入日志文件(用于调试目的)的操作:

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

首先,我的代码失败,appnull。然后我尝试将CanvasAuthorizeAttribute添加到Controller,这也没有多大帮助。我应该添加一些其他属性吗?或者还有别的我错了吗?

修改

我正在使用SDK的4.2.1版本。

编辑2: 感谢Pat我发现下面的代码完成了这项工作(在操作或控制器上没有任何属性)。

var app = new FacebookApp();
var userId = app.SignedRequest.UserId;

1 个答案:

答案 0 :(得分:2)

我通过解析Facebook点击你的DeAuth页面时出现的signed_request来做到这一点:

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

我正在使用我必须修改的SDK的先前版本以使ParseSignedRequest公开(它是私有的),但我相信这是您正在使用的最新版本4.2.1中的公共方法。