gpt4 book ai didi

php - 使用 PHP 访问 Facebook session

转载 作者:搜寻专家 更新时间:2023-10-31 22:14:08 25 4
gpt4 key购买 nike

我正在努力使用 PHP 在我的网站上保持 Facebook session 活跃。

我同时使用 JavaScript SDK 和 PHP SDK 来构成我的应用程序的基础。

我遇到的问题是,当“Facebook session ”结束时,我的 PHP 脚本认为您已退出 Facebook。但是,只要我使用 JavaScript SDK 调用 FB.init(), session 就会恢复。

有没有办法使用 PHP SDK 实现相同的目的?或者我可以在 Facebook session 中设置自定义到期时间吗?

摘自评论

session 过期时间似乎设置为 2 小时,但我不确定。我认为调用 PHP api 不会有什么不同。我需要更清楚地解释发生了什么。基本上,如果您到达我的主页,您可以选择通过 Facebook 登录。如果你这样做,这一切都很好!登录并授权该应用程序后,在 session 过期之前都可以。当 session 过期时,PHP SDK 似乎无法确定您是否通过 Facebook 登录,但 Javascript SDK 可以。我将 getUser() 用于 PHP SDK。

换句话说,因为 session 已过期,PHP 认为您不再通过 Facebook 登录。 Javascript SDK 能够检测您是否登录,无论 session 是否存在。当它意识到你是,它会以任何方式重新创建 session 。但是为了让 PHP 获取 session ,页面显然需要刷新。这是我遇到的问题,因为页面根据您的 Facebook 登录显示内容,我需要 PHP SDK 也能够重新创建 session ,这样就不需要刷新页面。

最佳答案

好的...不确定您的 session 为何如此运行的确切细节 - 我也必须声明我不是很精通 PHP session 并且没有丰富的经验。

我的建议是让 JavaScript SDK 完成它的工作......让它成功地“重新检测”您的 session ,然后在它完成后,对您的服务器进行 AJAX 调用。在该调用的处理过程中,您可以创建并重新启动 PHP SDK,从而恢复您的 session 。

此外,您可以调用 FB.getAuthResponse定期确保用户 session 仍然有效(至少在 JavaScript SDK 中)。

来自Fb.getLoginStatus() documentation :

{
status: 'connected',
authResponse: {
accessToken: '...',
expiresIn:'...',
signedRequest:'...',
userID:'...'
} }

By testing for the presence of the authResponse object within the response object, you can be sure the user is known to your app and you can begin to make further calls to the Facebook APIs. If the authResponse object is not present, the user is either not logged into Facebook, or has not authorized your app.

关于php - 使用 PHP 访问 Facebook session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8873426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com