У меня есть действительный и аутентифицированный пользователь, но при публикации на стене из нашего веб-приложения PHP он возвращает:
Fatal error: Uncaught OAuthException: (# 803) Некоторые из запрошенных вами псевдонимов не существуют: xxxxxxxxxxxxx "," name ":" xxxxxxx
У меня есть 24 других пользователя, которые могут отправлять сообщения без каких-либо проблем. И я вижу, что пользователь существует, перейдя на https://graph.facebook.com/xxxxxxxxxxxxx
Вот код:
$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.ruphp.com/php/www.webcam.net'));
Любые идеи, почему API Facebook считает, что этого пользователя не существует?
У меня была эта проблема, позже я понял, что сохраняю uid в своей базе данных как integer
, однако новые профили facebook имеют очень длинные uids, такие как: 100004409446248
, это не значение, которое я мог бы сохранить как integer
в моей базе данных mysql , Я изменил это, чтобы рассматривать его как varchar
, так что теперь нет проблемы
Этот вопрос Получение списка друзей Facebook с последним API предлагает
$friends = $facebook->api('/me/friends');
Я написал две библиотечные процедуры для получения целых числовых запросов. Подобно опыту Дайнела, когда я использую intval()
, я получаю недопустимую ошибку для идентификатора Facebook, вызывая эту ошибку.
Код:
function get_int($field) { $value = 0; if(isset($_GET[$field])) $value = intval($_GET[$field]); return $value; }
Я использую get_str для facebook_id, и проблема исчезла.
function get_str($field) { $value = ''; if(isset($_GET[$field])) $value = $_GET[$field]; return $value; }
Определите идентификатор APP как целое, а не строку!