0

I am writing a php script that auto posts into my facebook wall.

But am getting this error :

Given URL is not allowed by the Application configuration: One or more of the given URLs is not allowed by the App's settings. It must match the Website URL or Canvas URL, or the domain must be a subdomain of one of the App's domains.

Not sure if I am doing it right but I have added my web domain lets call it http://123.1.2.3 into the app's website under developer page.

I am calling this php on http://123.1.2.3/folder/subfolder/index.php which falls under the declared domain. Why am I denied access?

require_once __DIR__ . '/src/Facebook/autoload.php';

$fb = new Facebook\Facebook([
  'app_id' => '[MY_APP_ID]',
  'app_secret' => '[MY_APP_SECRET]',
  'default_graph_version' => 'v2.5',
]);



$helper = $fb->getRedirectLoginHelper();
$permissions = ['email', 'publish_actions','publish_pages']; // optional
try {
    if (isset($_SESSION['facebook_access_token'])) {
        $accessToken = $_SESSION['facebook_access_token'];
    } else {
        $accessToken = $helper->getAccessToken();
    }
} catch(Facebook\Exceptions\FacebookResponseException $e) {
    // When Graph returns an error
    echo 'Graph returned an error: ' . $e->getMessage();
    exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
    // When validation fails or other local issues
    echo 'Facebook SDK returned an error: ' . $e->getMessage();
    exit;
 }
if (isset($accessToken)) {
    if (isset($_SESSION['facebook_access_token'])) {
        $fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
    } else {
        $_SESSION['facebook_access_token'] = (string) $accessToken;
        // OAuth 2.0 client handler
        $oAuth2Client = $fb->getOAuth2Client();
        // Exchanges a short-lived access token for a long-lived one
        $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($_SESSION['facebook_access_token']);
        $_SESSION['facebook_access_token'] = (string) $longLivedAccessToken;
        $fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
    }

    // validating the access token
    try {
        $request = $fb->get('/me');
    } catch(Facebook\Exceptions\FacebookResponseException $e) {
        // When Graph returns an error
        if ($e->getCode() == 190) {
            unset($_SESSION['facebook_access_token']);
            $helper = $fb->getRedirectLoginHelper();
            //$loginUrl = $helper->getLoginUrl('http://anything.com/fbtest/index.php', $permissions);
            $loginUrl = $helper->getLoginUrl('http://anything.com/page_components/SocialManager/fbtest/index.php', $permissions);
            //$loginUrl = $helper->getLoginUrl('http://anything.com/CZ3003/Web_components/page_components/SocialManager/fbtest/index.php', $permissions);
            echo "<script>window.top.location.href='".$loginUrl."'</script>";
            exit;
        }
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
        // When validation fails or other local issues
        echo 'Facebook SDK returned an error: ' . $e->getMessage();
        exit;
    }

    // posting on user timeline using publish_actins permission
    try {
        // message must come from the user-end
        //$data = ['message' => 'Testing'];
        //$data = ['message' => $data];
        //$data=rand(0,1000);
        $data = ['message' => $data];
        $request = $fb->post('/me/feed', $data);
        $response = $request->getGraphEdge();
    } catch(Facebook\Exceptions\FacebookResponseException $e) {
        // When Graph returns an error
        //comment the line below this to hide errors.
        //echo 'Graph returned an error: ' . $e->getMessage();
        //exit;
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
        // When validation fails or other local issues
        //echo 'Facebook SDK returned an error: ' . $e->getMessage();
        //exit;
    }

    //echo $response['id'];

    // Now you can redirect to another page and use the
    // access token from $_SESSION['facebook_access_token']
} else {
    $helper = $fb->getRedirectLoginHelper();
    //$loginUrl = $helper->getLoginUrl('http://anything.com/fbtest/index.php', $permissions);
    //$loginUrl = $helper->getLoginUrl('http://anything.com/CZ3003/Web_components/page_components/SocialManager/fbtest/index.php', $permissions);
    $loginUrl = $helper->getLoginUrl('http://anything.com/page_components/SocialManager/fbtest/index.php', $permissions);
    echo "<script>window.top.location.href='".$loginUrl."'</script>";
}
Ajit Medhekar
  • 1,018
  • 1
  • 10
  • 39
Gavin
  • 2,784
  • 6
  • 41
  • 78

0 Answers0