我正在尝试在我的.Net MVC3中处理来自Facebook的DeAuth回调,以便我可以检索UserId并从我的数据库中删除用户。
我使用this answer中的代码创建了一个写入日志文件(用于调试目的)的操作:
FacebookApp app = new FacebookApp();
string accessToken = app.Session.AccessToken;
long userId = app.UserId;
首先,我的代码失败,app
为null
。然后我尝试将CanvasAuthorizeAttribute
添加到Controller
,这也没有多大帮助。我应该添加一些其他属性吗?或者还有别的我错了吗?
修改
我正在使用SDK的4.2.1版本。
编辑2: 感谢Pat我发现下面的代码完成了这项工作(在操作或控制器上没有任何属性)。
var app = new FacebookApp();
var userId = app.SignedRequest.UserId;
答案 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中的公共方法。