Facebook PHP throwing exception “(# 803) Algunos de los alias que solicitaste no existen”

Tengo un usuario válido y autenticado, pero al publicar en su muro desde nuestra aplicación web PHP, regresa:

Error fatal: OAuthException no detectada: (# 803) Algunos de los alias que solicitó no existen: xxxxxxxxxxxxx “,” name “:” xxxxxxx

Tengo otros 24 usuarios que pueden publicar sin problemas. Y puedo ver que el usuario existe yendo a https://graph.facebook.com/xxxxxxxxxxxxx

Aquí está el código:

$fb_user_id = $row[0]; // loaded from DB $facebook_token = $row[1]; // loaded from DB $result = $facebook->api('/' . $fb_user_id. '/feed/', 'post', array('access_token' => $facebook_token, 'message' => $postMessage, 'name' => 'Product name', 'caption' => 'Accomplished!', 'link' => 'http://www.xxxxxxx.com/', 'description' => $postMessage, 'picture' => 'http://img.rephp.com/php/www.webcam.net')); 

¿Alguna idea de por qué la API de Facebook cree que este usuario no existe?

Tuve este problema, luego me di cuenta de que estaba guardando el uid en mi base de datos como un integer , sin embargo, los nuevos perfiles de Facebook tienen fluidos muy largos, como: 100004409446248 , este no era un valor que pudiera guardar como un integer en mi base de datos mysql , Cambié esto para tratarlo como varchar , así que ahora no hay problema

Esta pregunta Obtener lista de amigos de Facebook con la última API sugiere

$friends = $facebook->api('/me/friends');

Escribí dos rutinas de biblioteca para obtener cadenas de caracteres enteros. De forma similar a la experiencia de intval() cuando uso la función intval() , obtengo un ID de Facebook no válido que causa ese error.

Código:

 function get_int($field) { $value = 0; if(isset($_GET[$field])) $value = intval($_GET[$field]); return $value; } 

Uso el get_str para facebook_id y el problema desapareció.

 function get_str($field) { $value = ''; if(isset($_GET[$field])) $value = $_GET[$field]; return $value; } 

¡Defina la ID de la aplicación como un entero, no como una cadena!