如何将我在JS SDK中获得的Facebook访问令牌传递给我的PHP脚本?

时间:2012-12-18 22:30:22

标签: facebook facebook-javascript-sdk facebook-php-sdk facebook-apps facebook-access-token

我有一个使用JS SDK的功能性facebook应用程序。我可以使用JS SDK来获取我的用户的Facebook ID和访问令牌,它似乎工作正常。但是,我的JS脚本需要通过JQuery AJAX调用一些服务器端PHP代码,以便进行一些与服务器端相关的操作......但我仍然需要访问我的用户在PHP代码上的访问令牌。 在PHP SDK的官方facebook文档中,我看到了以下内容:

  

Facebook SDK for PHP可以与Facebook SDK for Javascript结合使用,在应用程序的客户端和服务器端提供无缝的会话管理。

     

要启用此功能,请确保在嵌入和初始化JS SDK时,将传递给FB.init()的对象的状态和cookie参数都设置为true。

我按照上面所写的确切说明操作,但看起来我的PHP代码在初始化我的facebook PHP对象后无法获取用户的facebook ID和访问令牌。

我想念什么?我不明白,因为根据文档的说法,我的用户的访问令牌应该使用cookie自动传递给PHP SDK。

应该以其他方式完成吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果使用Javascript SDK检索access_token,那么您知道只有在第一页加载后(在页面重新加载或在ajax调用上)才能获得它。

尽管如此,请务必检查您的SDK是否设置正确(以及频道文件),因为这可能会给跨域通信带来麻烦 - 并且因为cookie大部分时间都是在iframe中被阻止而没有某种形式黑客攻击(主要是在IE和Safari中)。

此外,JS SDK将设置的cookie将通过PHP SDK函数使用,对您而言,似乎getAccessToken就是您想要的。 https://developers.facebook.com/docs/reference/php/facebook-getAccessToken/