Necesita ayuda sobre OAuthException Code 2500

Estoy tratando de desarrollar una aplicación de Facebook (apps.facebook.com/some_app) usando PHP, donde necesito presentar alguna información basada en los intereses musicales del usuario. Descubrí que está debajo de "user_likes> games".

Mis problemas son los siguientes:

Para obtener acceso, he implementado el método de diálogo oauth como se sugiere en API en mi página de índice.
$auth_url = "http://www.facebook.com/dialog/oauth?client_id="
            . $app_id . "&redirect_uri=" 
            . urlencode($canvas_page)
            ."&scope=user_likes";
Después de una autorización exitosa, regreso a la página de índice con "código" como parámetros.
http://MY_CANVAS_PAGE/?code=some base64 encoded letters
Primero no sé si necesito access_token solo para leer los intereses musicales de los usuarios, pero he probado todos los métodos sugeridos. No podría avanzar desde este punto Tengo un código como este (en mi página de índice), que redirige para obtener autorización si no se configuran los parámetros del código.
if(empty($code) && !isset($_REQUEST['error'])) {
  $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
  echo("<script> top.location.href='" . $auth_url . "'</script>");
}
Actualmente solo estoy tratando de obtener información pública del usuario aquí, pero sin éxito. He intentado el método firmado_request como se sugiere, pero no he tenido éxito
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
echo ("Welcome User: " . $data["user_id"]);

También probó el código encontrado enhttp: //developers.facebook.com/blog/post/500

pero recibo un error al intentar obtener la información de depuración usando

print_r($decoded_response);
stdClass Object ( [error] => stdClass Object ( [message] => An active 
access token must be used to query information about the current user. 
[type] => OAuthException [code] => 2500 ) ) 

Para obtener información pública del usuario, he probado también el ejemplo sugerido en PHP SDK

$facebook = new Facebook(array(
'appId'  => MY_APP_ID, //registered facebook APP ID
'secret' => MY_SECRET, //secret key for APP
));

$fb_user = $facebook->getUser();

if($fb_user){
    try {
      $user_profile = $facebook->api('/me');
      echo $user_profile['email'];
    }
    catch(FacebookApiException $e) {
      $fb_user = null;
    }
}

Pero no hay éxito. ¿Alguien puede explicarme por qué recibo este error y cómo acceder correctamente al interés musical del usuario? Probablemente entendí mal la API.

Gracia

Deepak

Respuestas a la pregunta(8)

Su respuesta a la pregunta