facebook api空白回复也不例外 [英] facebook api blank response and no exception

查看:104
本文介绍了facebook api空白回复也不例外的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 $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被访问。
我的问题是

i tried with php sdk 3.3.2 and user login by facebook it prints the token and user info untill token expire. after about one hour i check by token debugger session expired and it give exception once and then blank response.but in another tab facebook is being accessed . my question is

1.当令牌过期时,是否有任何内置方法再次获取有效的令牌?

1.When token expired, is there any inbuild method to get valid token again ?

2.为什么空白回应?每次应该抛出异常

2.Why blank response? everytime it should throw exception

推荐答案

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

You can use Facebook's Debug Tool to check the validity of your access token.

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

The normal access token expires in 2 hours, and the extended token lasts for 2 months.

如果您想要扩展令牌,请通过以下方式:如何从offline_access弃用后扩展访问令牌的有效性

If you want the extended token, go though this: How to extend access token validity since offline_access deprecation

嗯,如果你正在为$ facebook-> api('/ me')空白这仅仅意味着用户尚未授权该应用。尝试这样的东西 -

Well, If you are getting blank for $facebook->api('/me'); this simply means that the user have not authorized the app yet. Try something like this-

$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空白回复也不例外的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆