简体   繁体   English

Facebook PHP SDK v5-AccessToken到期日期

[英]Facebook PHP SDK v5 - AccessToken expiration date

I have two PHP files for making a login-link and receiving the access token (callback). 我有两个PHP文件,用于建立登录链接并接收访问令牌(回调)。 My problem is, I cannot receive or get the expiration date of the access token. 我的问题是,我无法接收或获取访问令牌的到期日期。

This is my script for creating a link: 这是我创建链接的脚本:

<?php
session_start();

define('FACEBOOK_SDK_V4_SRC_DIR', __DIR__ . '/facebook/');      
require_once __DIR__ . '/autoload.php';

$fb = new Facebook\Facebook( array('app_id' => 'XX', 'app_secret' => 'XX', 'default_graph_version' => 'v2.5'));

$permissions = ['email', 'user_likes', 'user_birthday', 'manage_pages ', 'user_photos', 'publish_actions', 'publish_pages' ];

$helper = $fb -> getRedirectLoginHelper();
$loginUrl = $helper -> getLoginUrl('blabla/facebook-login-callback.php', $permissions);

echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>'; ?>

This works fine , my callback file is called. 这工作正常 ,调用了我的回调文件。

<?php

session_start();

define('FACEBOOK_SDK_V4_SRC_DIR', __DIR__ . '/facebook/');
require __DIR__ . '/autoload.php';

$fb = new Facebook\Facebook(['app_id' => 'XX', 'app_secret' => 'XX', 'default_graph_version' => 'v2.5']);
$helper = $fb -> getRedirectLoginHelper();

try {

    try {
        $accessToken = $helper -> getAccessToken();

        $isexpired = $accessToken -> isExpired();
        $expiresAt = $accessToken -> getExpiresAt();

        echo "AccessToken: ";
        echo $accessToken -> getValue();

        echo "<br/>ExpiresAt: ";
        echo $expiresAt;

        echo "<br/>IsExpired: ";
        echo $isexpired;

        die();

    } catch(Facebook\Exceptions\FacebookSDKException $e) {
        // There was an error communicating with Graph
        echo $e -> getMessage();
        exit ;
    }
} 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: ' . $e -> getMessage();
    exit ;
} ?>

BUT now my problem is, that I DONT get the expiration date as well as the 'isExpired' value, its just empty. 但是现在我的问题是,我没有得到到期日期以及'isExpired'值,它只是空的。 The only thing I get is the access token as a string (by 'getValue()'). 我唯一得到的是访问令牌作为字符串(通过“ getValue()”)。

Can somebody help me? 有人可以帮我吗? I think my code should be correct? 我认为我的代码应该正确吗?

Code : 代码

{
    $accessToken =$helper->getAccessToken();

    $isexpired = $accessToken -> isExpired();
    $expiry_status=json_encode($isexpired);

    $expiresAt = $accessToken -> getExpiresAt();
    $mydate=json_encode($expiresAt);


    echo "AccessToken: ";
    echo $accessToken -> getValue();

    echo "<br/>ExpiresAt: ";
    echo $expiresAt->date;

    echo "<br/>IsExpired: ";
    echo $expiry_status;

    die();
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM