Facebook cookie和oauth 2.0发生了变化

Jos*_*hua 5 php facebook codeigniter oauth-2.0

这个功能曾经为我工作,直到有一天facebook决定强制执行一些更改.

    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;
        }
}
Run Code Online (Sandbox Code Playgroud)

我能够轻松获得FB用户访问令牌

$cookie['access_token']
Run Code Online (Sandbox Code Playgroud)

现在似乎我不能再检索此信息了.

我成功(轻松)能够对我的javascript代码进行必要的更改,但我有点难以在php端.作为一个快速的说明我正在使用codeigniter,我在尝试使用FB PHP SDK发挥得很好时遇到了很多麻烦,我也没有看到任何将PHP 3 SDK集成到codeigniter中的例子所以我是寻找一个快速而肮脏的解决方案,这将允许我从cookie获取访问令牌,从而允许我使用以下调用Facebooks API:

'https://api.facebook.com/method/friends.getAppUsers?access_token=' . $cookie['access_token'];
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏.

Kok*_*ers 7

这是因为Facebook改变饼干的名字从fbs_fbsr_.

但是有更多变化.只需按照以下步骤操作