在使用Facebook会话从网站与用户的Facebook数据进行交互时,应该何时保留Facebook会话以及应该何时保留facebook令牌?
在特定页面上建立facebook会话后,如果会话被保存并重新使用,或者是否应保存facebook令牌并从该facebook令牌创建新的facebook会话,浏览器将被重定向到新页面?
此?
$session = new FacebookSession($_SESSION['token']);
还是这个?
$token = $_SESSION['session']->getToken();
答案 0 :(得分:1)
你没有指定你的应用程序的环境(画布,网站等),所以我做了很多假设但是......
我只使用画布应用程序,并且在大多数情况下,PHP SDK将在正确设置时为您处理所有这些(例如,如果用户在您的应用程序中打开新选项卡)。如果您需要在没有任何登录流程的情况下向另一个页面发出请求(就像您要求的那样),我只需保存访问令牌并从那里创建会话。每次用户登录我的应用程序时,我都会将其访问令牌保存到我的数据库中。当他们使用我的应用程序时,我可以使用该访问令牌来调用用户不与之交互的页面,但仍然可以获得我需要的FB信息。一段时间后令牌过期,但当用户与我的应用程序进行交互时,我不需要担心它们会过期,因为我将在未来某个时间点再次登录时获取新令牌。
所以只需保存令牌并将其与用户ID匹配即可。然后使用该令牌创建您需要的会话。如果您需要与用户退出应用程序时远远超出的信息进行交互,则可能需要延长生命访问令牌。
https://developers.facebook.com/docs/facebook-login/access-tokens/#extending