5
此功能用於爲我工作,直到Facebook決定強制執行一些更改。Facebook cookie和oauth 2.0更改
function get_facebook_cookie() {
$app_id = '[MyAppID]';
$application_secret = '[MyAppSecrect]';
if(isset($_COOKIE['fbs_' . $app_id])){
$args = array();
parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args);
ksort($args);
$payload = '';
foreach ($args as $key => $value) {
if ($key != 'sig') {
$payload .= $key . '=' . $value;
}
}
if (md5($payload . $application_secret) != $args['sig']) {
return null;
}
return $args;
} else {
return null;
}
}
我是能夠得到FB用戶訪問令牌一樣容易
$cookie['access_token']
現在,它似乎並不認爲我能夠再檢索該信息。
我成功(很容易)能夠對我的JavaScript代碼進行必要的更改,但我有點難住在PHP方面。作爲一個快速的一面說明,我使用codeigniter,並且在嘗試使FB PHP SDK發揮出色方面遇到了很多麻煩,我也沒有看到將PHP 3 SDK集成到codeigniter的任何示例,所以我尋找一個快速和骯髒的解決方案,讓我從這樣讓我用下面的調用Facebook的API該cookie獲得訪問令牌:
'https://api.facebook.com/method/friends.getAppUsers?access_token=' . $cookie['access_token'];
任何幫助是極大的讚賞。
感謝您的建議。將代碼更改爲fbsr_將返回以下php錯誤「消息:未定義的索引:sig」,它在上面的代碼中引用此行「if(md5($ payload。$ application_secret)!= $ args ['sig']) 」。有任何想法嗎? – Joshua 2011-12-16 21:43:07