我整个星期六都在 Google 上筋疲力尽。认真的善业属于任何能提供帮助的人。
我正在使用 .NET Facebook 工具包 V3 针对 Facebook 对我的用户进行身份验证。当用户授予 offline_access 权限时,我会存储 session key 。当他们稍后返回时没有 facebook session (但对我的网络应用程序有有效 session )。
我从数据库中获取 key 并将其应用于 Facebook.Session,如下所示:
facebookAPI.Session.SessionKey = offlineAccesSessionKey;
facebookAPI.Session.UserId = (long)fuid;
像魔术一样工作。
现在是问题:
如何将这个无限 session key 与 Javascript API 和 FBML 一起使用?
我可以将 session key 传递给客户端,但是然后呢? 获取授权?设置 session ?无法让它工作,尽我所能尝试,但不确定它是否对我的 FBML 有帮助。
我已经试过了:
facebookAPI.Auth.Session.UserId = (long)fuid;
facebookAPI.Auth.Session.SessionKey = offlineAccesSessionKey;
facebookAPI.Auth.Session.SessionSecret = _facebookAPI.Session.SessionSecret;
facebookAPI.Auth.PromoteSession();
希望它能复制 cookie,我可以在客户端获取它们,但没有成功。
这似乎是一种很常见的情况,但我的“专家”Google 技能却变成了零。
有没有人有任何经验可以提供帮助?
最佳答案
据我所知,Facebook 的 JS API 在使用时会生成自己的 session (如果我错了请纠正我)。该 session 是临时的,因此无法在服务器上使用其 token 。
您可以做的是将 uid 与(无限) token 一起存储在数据库中。然后使用 JS API,您可以从客户端获取 uid,发送到服务器,然后从数据库中检索 token 。然后,您可以代表用户进行正常的服务器端连接。
希望对你有帮助。
关于c# - 基于有效的离线访问 key (无限 session key )创建 Javascript Facebook Connect session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2395271/