无法获得facebook Session

I am getting Facebook session on Woocommerce file - abstract-wc-payment-gateway.php. But when I use the get_user_id_awpg() function which is getting the Facebook user id,but the function return null. Nothing will be printed out.

But, I can use this function on other file, don't know what is the problem.

Here is my code:

<?php 


 if ( ! defined( 'ABSPATH' ) ) {
    exit;
 }

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

 abstract class WC_Payment_Gateway extends WC_Settings_API {
      public  function get_user_id_awpg()
       {
           if(!isset($_SESSION)){
                session_start();
            }
                  $fb = new Facebook\Facebook
                  ([
                             'app_id' => 'app_id',  //Your apps Id
                            'app_secret' => 'app_secret',
                            'default_graph_version' => 'v2.6',
]);

$helper = $fb->getRedirectLoginHelper();

    $permissions = ['email', 'user_friends','user_birthday']; // 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 0: ' . $e->getMessage();
        exit;
    }

    if (isset($accessToken)) {

        if (isset($_SESSION['facebook_access_token'])) {

            $fb->setDefaultAccessToken($_SESSION['facebook_access_token']);

        } else {
        // getting short-lived access token
            $_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;

            // setting default access token to be used in script
            $fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
        }

    // redirect the user back to the same page if it has "code" GET variable
        if (isset($_GET['code'])) {
            header('Location: ./');
        }

        // getting basic info about user
        try {

            $profile_request = $fb->get('/me?fields=name, age_range{max}, education{school{name}}');
            $profile = $profile_request->getGraphNode()->asArray();
                                                                                     $user_id = $profile['id'];
        } catch(Facebook\Exceptions\FacebookResponseException $e) {

            // When Graph returns an error
            echo 'Graph returned an error: ' . $e->getMessage();
            session_destroy();

            // redirecting user back to app login page
            header("Location: ./");
            exit;

        } catch(Facebook\Exceptions\FacebookSDKException $e) {

            // When validation fails or other local issues
            echo 'Facebook SDK returned an error 1: ' . $e-> getMessage();
            exit;

        }


            }

                  return $user_id;
       }

Thx a lot.