gpt4 book ai didi

javascript - 强制刷新 Facebook session

转载 作者:行者123 更新时间:2023-11-28 09:57:40 26 4
gpt4 key购买 nike

是否可以强制刷新 Facebook session ,或者在文档中多次调用“FB.init”函数。我不会详细介绍我想要实现的目标,因为它相当冗长,但我已经为此工作了一段时间,而且似乎确实有必要这样做。

我有一个每 30 秒调用一次的脚本,用于检查 facebook 用户是否登录,这可以通过以下方式轻松实现:

window.fbAsyncInit=function(){
// Initialize the Facebook object
FB.init({
appId:"123",
status:true,
cookie:true,
xfbml:true,
oauth:true
});
// Check the Facebook session status every 30 seconds
setTimeout(function(){
// Pass the Facebook object to the welcome function
fb_welcome(FB);
,30000);
};

在“fbWelcome”函数中,我测试用户是否使用 getLoginStatus 函数通过 Facebook 登录。然后,我根据响应更改页面上的元素。然而,我所做的一件关键的事情就是让这一切都出错。

如果用户登录 Facebook,那么我使用 ajax 向我的 API 发送请求,该请求返回 Facebook 用户详细信息。该 API 使用 PHP 与 Facebook API 进行通信。如果页面加载时用户已登录 Facebook,则不会出现问题。但是,如果用户未登录 Facebook,并在我的网站上的另一个选项卡上登录 Facebook,则 session 不会刷新,并且无法访问详细信息,因为访问 token 和签名的请求无效。因此,我需要一种使用 JavaScript 刷新 session 中的访问 token 和签名请求的方法,以确保 PHP API 正确读取它们。

我非常确定,通过再次调用 FB.init 函数,这将解决该问题,因为它将刷新 session 。但是,我不确定是否应该在每页多次调用此函数。这是允许的吗?它会把事情搞砸吗?

几点说明:

  1. 我知道我可以通过 Javascript SDK 和 FB.api 检索用户详细信息,但是,由于特殊原因我不想这样做
  2. 我还知道我可以将访问 token 和签名请求传递给 PHP API,但出于特殊原因我也不想这样做

非常感谢任何帮助

最佳答案

虽然我没有回答我的问题,但我已经使用我不想使用的解决方案之一解决了它。我现在使用 Javascript API 而不是我自己的 API 来检索用户详细信息,因为我无法将新的 Facebook session 传递给 PHP API。

我尝试再次调用 init 函数,虽然我能够调用,但它绝对没有任何效果,而且我并不真的希望这成为解决方案,因为我不应该仅仅为了刷新而重新初始化 Facebook 库 session 。

无论如何,我会保留这个开放性,以便其他人发表他们的意见(如果有的话)。在某些情况下,尝试在 PHP 和 Javascript SDK 之间进行通信似乎是一个真正的挑战,我遇到了很多问题......

关于javascript - 强制刷新 Facebook session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9760275/

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