我花了整整六个星期六让谷歌筋疲力尽。严肃善良的业力属于任何可以提供帮助的人。
我正在使用.NET Facebook工具包V3来验证我的用户对Facebook。当用户授予offline_access权限时,我存储会话密钥。当他们稍后返回时没有facebook会话(但我的网络应用程序的有效会话)。
我从数据库中获取密钥并将其应用于Facebook.Session,如下所示:
facebookAPI.Session.SessionKey = offlineAccesSessionKey;
facebookAPI.Session.UserId = (long)fuid;
像魔术一样工作。
现在这是问题:
如何将此无限会话密钥与Javascript API和FBML一起使用?
我可以将会话密钥传递给客户端,但那么呢? getAuth? set_session?不能让它起作用,尽可能地尝试,并且不确定它是否会帮助我使用FBML。
我试过这个:
facebookAPI.Auth.Session.UserId = (long)fuid;
facebookAPI.Auth.Session.SessionKey = offlineAccesSessionKey;
facebookAPI.Auth.Session.SessionSecret = _facebookAPI.Session.SessionSecret;
facebookAPI.Auth.PromoteSession();
希望它能复制cookie,我可以在客户端接收它们,但没有运气。
看起来它一定是一个非常常见的情况,但我的“专家”谷歌技能正在变为零。
有没有人有任何可以提供帮助的经验?
答案 0 :(得分:0)
据我所知,Facebook的JS API在其使用时生成自己的会话(如果我错了,请纠正我)。该会话是临时的,因此无法在服务器上使用其令牌。
您可以做的是将uid与(无限)令牌一起存储在数据库中。然后使用JS API,您可以从客户端获取uid,发送到服务器,然后从数据库中检索令牌。然后,您可以代表用户执行正常的服务器端连接。
我希望它有所帮助。