Facebook标签页在已签名的已验证用户请求中丢失页面信息


Facebook Tab lose page information in signed request for authenticated users

查看未经授权的页面时,我的签名请求如下所示。

Array ( 
  [algorithm] => HMAC-SHA256 
  [issued_at] => 1328803958 
  [page] => Array ( 
    [id] => 114951721840 
    [liked] => 1 
    [admin] => 1 ) 
    [user] => Array ( 
      [country] => us 
      [locale] => en_US 
      [age] => Array ( [min] => 21 ) 
    ) 
)

授权应用程序后,初始选项卡页签名请求如下所示。

Array ( 
  [algorithm] => HMAC-SHA256 
  [expires] => 1328810400 
  [issued_at] => 1328804617 
  [oauth_token] => AAAEQiWKOJTUBAB7la6TzNybfDkv6eYwtGUayappUspm3hWx6qKAFw3Ahbdhqv1xZC27WmrZC0yMMdtE0pdxoiUruZABg1zN1DalnYqS5AZDZD 
  [page] => Array ( 
    [id] => 114951721840 
    [liked] => 1 
    [admin] => 1 ) 
    [user] => Array ( 
      [country] => us 
      [locale] => en_US 
      [age] => Array ( [min] => 21 ) 
    ) 
  )
  [user_id] => 30811359 
)

最后,当我离开这个页面时,签名的请求看起来是这样的。

Array ( 
  [algorithm] => HMAC-SHA256 
  [code] => 2.AQAq5nTl5j7tMkqF.3600.1328810400.5-30811359|tXdv-ci5z1GIzo9CY5HXp_piL3I 
  [issued_at] => 1328804621 
  [user_id] => 30811359 
)

我可以用一个有效的用户来确定用户点赞,但我想弄清楚为什么在从初始选项卡页面导航后会丢失标准签名请求数据。

更新:如果我将已签名的请求存储到会话变量中,并将其加载到后续页面上,那么我将维护完整的已签名请求。我有什么理由不这样做吗?

UPDATE:如果我将已签名的请求存储到会话变量中,并将其加载到后续页面上,那么我将维护完整的已签名请求。我有什么理由不这样做吗?

这正是你应该做的。

只有当Facebook最初加载Facebook选项卡时,才会发送签名请求。Facebook选项卡中的后续导航不会附带签名请求,因为Facebook不再启动页面加载。

我面临着与"Jeremy Jones"提到的类似的问题。在其他帖子中,我发现signed_request应该在$_REQUEST['signed_request']返回中。但它对我来说是空的,我得到了CCD_ 2的一些值,但这里缺少CCD_。