Facebook OAuthException: Error validating application

10,892

You don't have APP ID here. And make calls like this:

require_once('facebook.php');

$facebook = new Facebook( array(
    'appId'  => 'APP_ID',
    'secret' => 'APP_SECRET',
    'cookie' => true
));

try {
    $attachment = array(
        'message' => 'some meesgae',
        'name' => 'This is my demo Facebook application!',
        'caption' => "Caption of the Post",
        'link' => 'mylink.com',
        'description' => 'this is a description',
        'actions' => array(array(
            'name' => 'Get Search', 
            'link' => 'google.com'
            ))
    );

    $attachment['access_token'] = $offline_access_token; // add it to the array

    $result = $facebook->api('/me/feed', 'POST', $attachment );

    var_dump($result);

} catch(Exception $e) {
    // error_log( $e ); // should use something like this when in production
    echo $e;
}

Untested, but should work. Let me know if it doesn't.

Share:
10,892
PFrank
Author by

PFrank

Updated on June 06, 2022

Comments

  • PFrank
    PFrank almost 2 years

    I have a simple PHP page that is going to be used to post a message to my own wall.

    I've obtained an offline_access token that has "read_stream" and "publish_stream" permissions.

    define('FB_APIKEY', 'MY_APP_KEY');
    
    define('FB_SECRET', 'MY_APP_SECRET');
    
    define('FB_SESSION', 'MY_OFFLINE_TOKEN');
    
    require_once('facebook.php');
    
    try {
        $facebook = new Facebook(FB_APIKEY, FB_SECRET);
    
        $facebook->api_client->session_key = FB_SESSION;
    
        $attachment = array(
            'message' => 'some meesgae',
            'name' => 'This is my demo Facebook application!',
            'caption' => "Caption of the Post",
            'link' => 'mylink.com',
            'description' => 'this is a description',
            'actions' => array(array(
                         'name' => 'Get Search', 
                         'link' => 'google.com'
                      ))
        );
    
        $result = $facebook->api('/me/feed?access_token=' . FB_SESSION, 
                  'post', 
                  $attachment);
    
         var_dump($result);
    
    } catch(Exception $e) {
         echo $e;
    }
    

    When I run this, I get "OAuthException: Error validating application".

    I confirmed that my offline token is good. When I go to https://graph.facebook.com/me?access_token=[MY_OFFLINE_TOKEN], it returns my public profile in JSON format correctly.

    So, I'm thinking I'm doing something wrong with the API call somewhere but for the life of me I can't seem to figure it out. I've been wrestling with this issue for the last two days. Could someone please help! :(