2011-12-14 68 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