title: Facebook api doesn't return the access token
body: <p>My requirement: Publish a link in a facebook fan page automatically when a form is submmited in my web application.</p>
  
  <p>So I have the following code (copy/paste from the <a href="https://developers.facebook.com/docs/php/howto/example_facebook_login/5.0.0" rel="nofollow">facebook suggestion</a> )</p>
  
  <pre><code>        $appId = "...";
          $appSecret = "...";
  
  
          $fb = new Facebook\Facebook([
              'app_id' =&gt; $appId,
              'app_secret' =&gt; $appSecret,
          ]);
  
          $helper = $fb-&gt;getRedirectLoginHelper();
  
          try {
              $accessToken = $helper-&gt;getAccessToken();
          } catch (Facebook\Exceptions\FacebookResponseException $e) {
              // When Graph returns an error  
              echo 'Graph returned an error: ' . $e-&gt;getMessage();
              exit;
          } catch (Facebook\Exceptions\FacebookSDKException $e) {
              // When validation fails or other local issues  
              echo 'Facebook SDK returned an error: ' . $e-&gt;getMessage();
              exit;
          }
  
          if (!isset($accessToken)) {
              if ($helper-&gt;getError()) {
                  header('HTTP/1.0 401 Unauthorized');
                  echo "Error: " . $helper-&gt;getError() . "\n";
                  echo "Error Code: " . $helper-&gt;getErrorCode() . "\n";
                  echo "Error Reason: " . $helper-&gt;getErrorReason() . "\n";
                  echo "Error Description: " . $helper-&gt;getErrorDescription() . "\n";
              } else {
                  header('HTTP/1.0 400 Bad Request');
                  echo 'Bad request';
              }
              exit;
          }
  
  // Logged in  
          echo '&lt;h3&gt;Access Token&lt;/h3&gt;';
          var_dump($accessToken-&gt;getValue());
  
  // The OAuth 2.0 client handler helps us manage access tokens  
          $oAuth2Client = $fb-&gt;getOAuth2Client();
  
  // Get the access token metadata from /debug_token  
          $tokenMetadata = $oAuth2Client-&gt;debugToken($accessToken);
          echo '&lt;h3&gt;Metadata&lt;/h3&gt;';
          var_dump($tokenMetadata);
  
  // Validation (these will throw FacebookSDKException's when they fail)  
          $tokenMetadata-&gt;validateAppId($config['app_id']);
  // If you know the user ID this access token belongs to, you can validate it here  
  // $tokenMetadata-&gt;validateUserId('123');  
          $tokenMetadata-&gt;validateExpiration();
  
          if (!$accessToken-&gt;isLongLived()) {
              // Exchanges a short-lived access token for a long-lived one  
              try {
                  $accessToken = $oAuth2Client-&gt;getLongLivedAccessToken($accessToken);
              } catch (Facebook\Exceptions\FacebookSDKException $e) {
                  echo "&lt;p&gt;Error getting long-lived access token: " . $helper-&gt;getMessage() . "&lt;/p&gt;";
                  exit;
              }
              echo '&lt;h3&gt;Long-lived&lt;/h3&gt;';
              var_dump($accessToken-&gt;getValue());
          }
  
          $_SESSION['fb_access_token'] = (string) $accessToken;
  </code></pre>
  
  <p>But the output is <code>Bad request</code>. I tried with another appId but keeps the error.</p>