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