Php 如何在与您自己的登录集成时保持Facebook登录活动?

Php 如何在与您自己的登录集成时保持Facebook登录活动?,php,facebook,facebook-login,Php,Facebook,Facebook Login,我成功地设置了Facebook登录到我的web应用程序(它也有自己的登录系统),但我想知道如何保持FB连接的活动性,比如说,发布到他们的墙上,下面是我的一个登录示例 以下是登录过程(我使用的是Facebook php SDK): FB用户点击Facebook的登录按钮,而不是输入密码和电子邮件 facebook php SDK检查他们的登录状态,然后发现他们已授权我的应用程序 我的应用程序在我的数据库中检查他们的FB id是否存在,并找到它,从而启动与电子邮件/通行证登录用户相同的登录过程 会

我成功地设置了Facebook登录到我的web应用程序(它也有自己的登录系统),但我想知道如何保持FB连接的活动性,比如说,发布到他们的墙上,下面是我的一个登录示例

以下是登录过程(我使用的是Facebook php SDK):

  • FB用户点击Facebook的登录按钮,而不是输入密码和电子邮件
  • facebook php SDK检查他们的登录状态,然后发现他们已授权我的应用程序
  • 我的应用程序在我的数据库中检查他们的FB id是否存在,并找到它,从而启动与电子邮件/通行证登录用户相同的登录过程

    会话_destroy(); 会话_start(); 会话_重新生成_id()

…然后将用户ID和姓氏从我的数据库加载到会话变量中

它工作正常,用户可以使用我的应用程序,就像他们使用电子邮件通行证登录一样

然而,我现在想发布到他们的墙上,但不能,因为Facebook会话在我上面的登录过程中被破坏了,所以在我想发布到他们墙上的页面上,Facebook php连接代码告诉我他们没有连接(这很有意义)

有人能告诉我该怎么做吗


感谢您的时间和帮助。

请获取会话值并激活登录fb id。。(即)在您注销之前不要取消设置

$facebook->getSession();

你好-谢谢你的回复。我目前在登录他们时使用$facebook->getUser()代码(我以为getSession已被弃用?),然后使用$fb_profile=$facebook->api('/me/?field=name,email')成功获取他们的个人资料等。那么你是说a)有一种方法可以获取Facebook id的会话,b)我应该在销毁之前将其放入本地变量,然后设置新会话(登录用户),然后在他们登录后将FB本地变量会话信息放回会话变量?我想我已经弄明白了。在FB身份验证上,也要执行$FB_access_token=$facebook->getAccessToken();将此本地变量传递给在my DB中对用户进行身份验证后将其登录到my site的函数,然后在会话_destroy()之后;会话_start();etc将其放入会话变量:$\u会话['FB\u访问\u令牌]=$FB\u访问\u令牌;在Facebook的主连接代码中,添加检查(在getUser()之前):如果($\u会话['FB\u访问\u令牌])$Facebook->setAccessToken($\u会话['FB\u访问\u令牌]);这成功地使我能够访问用户信息。我的代码中有你能看到的漏洞吗?干杯