2011-12-14 77 views
1

使用PHP我曾经是能够通过这样做来检索活跃用户一个cookie:OAuth的变化歇越来越饼干

//Returns an array: ([access_token] =>[base_domain] =>[expires] =>[secret] =>[session_key] =>[sig] =>[uid] =>) 
    public static function getFacebookCookies() { 
     $args = array(); 
     parse_str(trim($_COOKIE['fbs_MY_API_KEY'], '\\"'), $args); 
     ksort($args); 
     $payload = ''; 
     foreach ($args as $key => $value) { 
     if ($key != 'sig') { 
      $payload .= $key . '=' . $value; 
     } 
     } 
     if (md5($payload . MY_API_SECRET) != $args['sig']) { 
     return false; 
     } 
     return $args; 
} 

但这似乎不再工作。我正在使用PHP SDK,现在有没有办法获取这些cookie,或者我运气不好?

回答

1

cookie fbs_APP_ID现在被替换为fbsr_APP_ID(注意r)。该值现在是signed_request而不是包含访问令牌。如果您查看docs,有一个php示例来解析此数据以获取JSON数组。

+0

我一直有与上面的斯科特一样的问题。我已经在我的代码中将cookie更改为fbsr_,但似乎仍然存在一些使用Scott上述示例的问题,因为它引发了一个php错误'Underfined index:sig' - Scott的函数直接从FB的开发人员文档中直接复制http://developers.facebook.com/docs/guides/web/#login不再有效,尚未更新。任何想法如何让上面的例子与今天的Facebook一起工作? – Joshua 2011-12-16 22:52:37