The Facebook SDK returned an error: the operation was disabled after 0 milliseconds with 0 of 0 received bytes The Facebook SDK returned an error: 28

I am trying to implement facebook login with SDK v4.0.5. When the user presses the login button, the user needs to give permission so that he can get permission, but when he returns to the return URL, he shows the following error. Facebook SDK returned an error: the operation was disabled after 0 milliseconds with 0 of 0 bytes received Facebook SDK returned error: 28

My code is below

<?php

// include required files form Facebook SDK
// added in v4.0.5
require_once( 'src/Facebook/HttpClients/FacebookHttpable.php' );
require_once( 'src/Facebook/HttpClients/FacebookCurl.php' );
require_once( 'src/Facebook/HttpClients/FacebookCurlHttpClient.php' );

// added in v4.0.0
require_once( 'src/Facebook/Entities/AccessToken.php' );
require_once( 'src/Facebook/FacebookSession.php' );
require_once( 'src/Facebook/FacebookRedirectLoginHelper.php' );
require_once( 'src/Facebook/FacebookRequest.php' );
require_once( 'src/Facebook/FacebookResponse.php' );
require_once( 'src/Facebook/FacebookSDKException.php' );
require_once( 'src/Facebook/FacebookRequestException.php' );
require_once( 'src/Facebook/FacebookOtherException.php' );
require_once( 'src/Facebook/FacebookAuthorizationException.php' );
require_once( 'src/Facebook/GraphObject.php' );
require_once( 'src/Facebook/GraphSessionInfo.php' );

// added in v4.0.5
use Facebook\FacebookHttpable;
use Facebook\FacebookCurl;
use Facebook\FacebookCurlHttpClient;
// added in v4.0.0
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookOtherException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\GraphSessionInfo;

// start session
session_start();

// init app with app id and secret
FacebookSession::setDefaultApplication('1020667531298709', 'edf4b9891cdf7385ca518392d38776b1');

// login helper with redirect_uri
$helper = new FacebookRedirectLoginHelper('http://localhost/tests/fb/test2.php/');

// see if a existing session exists
if (isset($_SESSION) && isset($_SESSION['fb_token'])) {
    // create new session from saved access_token
    $session = new FacebookSession($_SESSION['fb_token']);

    // validate the access_token to make sure it still valid
    try {
        if (!$session->validate()) {
            $session = null;
        }
    } catch (Exception $e) {
        // catch any exceptions
        $session = null;
    }
} else {
    // no session exists

    try {
        $accessToken = $helper->getAccessToken();
        if (isset($accessToken)) {
            // Logged in!
            $_SESSION['facebook_access_token'] = (string) $accessToken;
            echo $_SESSION['facebook_access_token'];
            // Now you can redirect to another page and use the
            // access token from $_SESSION['facebook_access_token']
        } elseif ($helper->getError()) {
            // The user denied the request
            exit;
        }
        // $session = $helper->getSessionFromRedirect();
    } catch (FacebookRequestException $ex) {
        // When Facebook returns an error
    } catch (Exception $ex) {
        // When validation fails or other local issues
        echo var_dump($ex);
    }
}

// see if we have a session
if (isset($session)) {

    // save the session
    $_SESSION['fb_token'] = $session->getToken();
    // create a session using saved token or the new one we generated at login
    $session = new FacebookSession($session->getToken());

    // graph api request for user data
    $request = new FacebookRequest($session, 'GET', '/me');
    $response = $request->execute();
    // get response
    $graphObject = $response->getGraphObject()->asArray();

    // print profile data
    echo '<pre>' . print_r($graphObject, 1) . '</pre>';

    // print logout url using session and redirect_uri (logout.php page should destroy the session)
    echo '<a href="' . $helper->getLogoutUrl($session, 'http://localhost/tests/fb/test2.php') . '">Logout</a>';
} else {
    // show login url
    echo '<a href="' . $helper->getLoginUrl(array('email', 'user_friends')) . '">Login</a>';
}

Any help would be greatly appreciated. Thanks in advanced

+4
source share

Source: https://habr.com/ru/post/1609972/


All Articles