خرید بک لینک

Vote count: 0

This authorization code has been used error retued when refreshing the page after login using facebook id. I have read many blogs and I did not get any idea about this issue. Here is my code.

fblogin.php

<?php

session_start();
// added in v4.0.0
require_once __DIR__.'vendorautoload.php';

//require 'functions.php';  

use FacebookFacebookSession;
use FacebookHelpersFacebookRedirectLoginHelper;
use FacebookFacebookRequest;
use FacebookFacebookResponse;
use FacebookExceptionsFacebookSDKException;
use FacebookFacebookRequestException;
use FacebookFacebookAuthorizationException;
use FacebookGraphNodesGraphObject;
use FacebookAuthenticationAccessToken;
use FacebookHttpClientsFacebookCurlHttpClient;
use FacebookHttpClientsFacebookHttpable;

$appId='myappid';
$secretkey='mysecretkey';
// init app with app id and secret
FacebookSession::setDefaultApplication($appId,$secretkey);


$fb=new FacebookFacebook(['app_id'=>'myappid','app_secret'=>'mysecretkey','default_graph_version' => 'v2.4']);

// login helper with redirect_uri
//$helper = new FacebookRedirectLoginHelper('http://localhost:81/fblogin/fblogin.php',NULL,NULL);
$helper=$fb->getRedirectLoginHelper();
$permissions = ['email', 'user_likes'];    

if(isset($_REQUEST['logout'])){

    //$accessToken=null;
    unset($_SESSION['facebook_access_token']);
    unset($_SESSION['facebook_user']);
    session_unset();
}

try {

  // Logged in!
  $accessToken = $helper->getAccessToken();
      } catch(FacebookExceptionsFacebookResponseException $e) {
  // When Graph retus an error
  echo 'Graph retued an error: ' . $e->getMessage();
  echo 'Facebook SDK retued an error: ' . $e->getTraceAsString();
} catch(FacebookExceptionsFacebookSDKException $e) {
  // When validation fails or other local issues
  echo 'Facebook SDK retued an error: ' . $e->getMessage();
  echo 'Facebook SDK retued an error: ' . $e->getTraceAsString();

}

 if (isset( $accessToken)) {
              $oAuth2Client = $fb->getOAuth2Client();
              $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($accessToken);
              $_SESSION['facebook_access_token'] = (string) $accessToken;

                    if(!isset($_SESSION['facebook_user'])) {
                    $response=$fb->get('/me?fields=id,name',$_SESSION['facebook_access_token']);

                    $user=$response->getGraphUser();

                      $_SESSION['facebook_user']=$user;

              }
        } elseif ($helper->getError()) {
          // The user denied the request
          exit;
        }
        else{
            $loginUrl=$helper->getLoginUrl('http://localhost:81/fblogin/fblogin.php',$permissions,'&');
        }
include 'index.php';
?>

index.php

<?php //
//session_start(); 

if(isset($_SESSION['facebook_user']))
{
    if($_SESSION['facebook_user'])!
    print_r($_SESSION['facebook_user']);
    echo '<a href=?logout>Logout</a>';
}
else
{
    echo '<a href="'.$loginUrl.'">Login with FB</a>';
}
?>

Steps:
-Run fblogin.php and click "Login with FB" link
-Enter user name and password of FB
-Check User id and name is displayed with Logout link in Index.php
-Now refresh the browser.
-Verify "Graph retued an error: This authorization code has been used" error thrown.

My question is, to resolve this problem, what i will do with the above code. If I have missed anything in my code, suggest me where i want to add or remove the line of code.

I am using Wamp server and Facebook SDK 5. Thanks in advance.

asked 3 mins ago

برچسب: نویسنده: استخدام کار تاريخ: چهارشنبه 11 فروردين 1395 ساعت: 15:35

صفحه بندی