10
votes

I have a valid and authenticated user, but when posting to their wall from our PHP web app it returns:

Fatal error: Uncaught OAuthException: (#803) Some of the aliases you requested do not exist: xxxxxxxxxxxxx","name":"xxxxxxx

I have 24 other users that can post with no issues. And I can see the user exists by going to https://graph.facebook.com/xxxxxxxxxxxxx

Here is the code:

    $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'));

Any ideas why the Facebook API thinks this user does not exist?

4
How about sharing your code with us? what fields you are sending with the request? - ifaour
Included code - thanks for the prompt. - Chris Masterton

4 Answers

26
votes

I had this issue, later I realised I was saving the uid in my database as an integer, however, new facebook profiles have very long uids, such as : 100004409446248, this was not a value I could save as an integer in my mysql database, I changed this to treat it as a varchar, so now there's no issue

1
votes

This question Getting list of Facebook friends with latest API suggests

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

0
votes

I wrote two library routine for get integer querystrings. Similar to Dainel's experience when I use the intval() function, I get an invalid Facebook id cause produce that error.

Code:

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

I use the get_str for facebook_id and problem was gone.

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

Define APP ID as integer, not string!