Facebook的API空白响应,没有异常(facebook api blank response

2019-11-01 07:24发布

 $facebook = new Facebook(array(
                'appId'  =>Yii::app()->params['FBappId'],
                'secret' =>Yii::app()->params['secret'] ,
                ));

                // Get User ID
                $user = $facebook->getUser();
              if ($user) {
              try {
                // Proceed knowing you have a logged in user who's authenticated.
                echo $accessToken=$facebook->getAccessToken();
                echo '<br/>';
                $user_profile = $facebook->api('/me');
                print_r($user_profile); echo "normal sdk"; exit;
              } catch (FacebookApiException $e) {
                  echo $e; exit;
                $user = null;
              }
            }
            echo "normal sdk end";exit;

我试图用PHP SDK 3.3.2和用户登录被Facebook将打印令牌和用户信息,直到令牌到期。 约一小时后,我通过令牌调试器会话过期检查,并给它异常一次,然后在另一个选项卡Facebook的空白response.but被访问。 我的问题是

1.当令牌过期,有没有什么方法inbuild再次得到有效的令牌?

2.为何空白回应? 每次它应该抛出异常

Answer 1:

您可以使用Facebook的调试工具检查您的访问令牌的有效性。

正常访问令牌过期在2小时内,以及扩展令牌持续2个月。

如果你想扩展的标记,请尽管这: 如何延长访问令牌的有效性,因为offline_access弃用

好吧,如果你正在为$ facebook-越来越空白> API( '/我'); 这只是意味着用户没有授权的应用程序呢。 你可以试试这个 -

$user_id = $facebook->getUser();
echo $uid;

if($user_id){
  try {
    $user_profile = $facebook->api('/me');

  } catch (FacebookApiException $e) {
    error_log($e);
    $user_id = null;
  }
}else{
    $login_url = $facebook->getLoginUrl();
    echo("<br>login url=".$login_url);
};


文章来源: facebook api blank response and no exception