<?php
require_once 'vendor/autoload.php'; // Include the Composer autoloader

use Facebook\Facebook;

$appId = '$appId';            // Replace with your App ID
$appSecret = '$appSecret';    // Replace with your App Secret
$accessToken = '$accessToken'; // Replace with the token you want to debug

$fb = new Facebook([
    'app_id' => $appId,
    'app_secret' => $appSecret,
    'default_graph_version' => 'v16.0', // Adjust based on your API version
]);

try {
    // Generate the app token
    $appToken = $appId . '|' . $appSecret;

    // Debug the token
    $response = $fb->get('/debug_token?input_token=' . $accessToken, $appToken);
    $tokenData = $response->getDecodedBody();

    // Display the token details
    echo "Token Data:\n";
    print_r($tokenData);

    if (isset($tokenData['data']['expires_at'])) {
        echo "Expires At: " . date('Y-m-d H:i:s', $tokenData['data']['expires_at']) . "\n";
    } else {
        echo "The token does not have an expiration time.\n";
    }
} catch (Facebook\Exceptions\FacebookResponseException $e) {
    echo 'Graph API Error: ' . $e->getMessage();
} catch (Facebook\Exceptions\FacebookSDKException $e) {
    echo 'SDK Error: ' . $e->getMessage();
}