Facebook PHP throwing exception "(# 803) Некоторые из запрошенных вами псевдонимов не существуют"

У меня есть действительный и аутентифицированный пользователь, но при отправке на их стену из нашего веб-приложения PHP он возвращает:

Неустранимая ошибка: 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://www.xxxxxxx.com/images/productImage.png'));

Любые идеи, почему API Facebook считает, что этого пользователя не существует?

Ответ 1

У меня была эта проблема, позже я понял, что я сохраняю uid в моей базе данных как integer, однако новые профили facebook имеют очень длинные uids, такие как: 100004409446248, это не значение, которое я мог бы сэкономить как integer в моей базе данных mysql, я изменил это, чтобы рассматривать его как varchar, поэтому теперь нет проблемы

Ответ 3

Я написал две библиотечные процедуры для получения целых числовых запросов. Подобно опыту Dainel, когда я использую функцию 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;
}

Ответ 4

Определите идентификатор APP как целое, а не строку!