2013-07-06 75 views
0

我有一遍又一遍的搜索,我似乎无法找到答案。我究竟做错了什么?Fceabook PHP SDK有效访问令牌

我的错误是FacebookApiException [0]:必须使用活动访问令牌来查询有关当前用户的信息。

编辑只需添加。这工作了一两次,但从未连续。

require_once('media/fb/facebook.php'); 
     $app_id = '123456'; 
     $app_secret = '123456'; 
     $my_url = 'mysiteurl'; 

     $config = array(
      'appId' => $app_id, 
      'secret' => $app_secret, 
      'fileUload' => 'false'); 

     $facebook = new Facebook($config); 
     $user = $facebook->getUser(); 
     if($user) { 
      try { 
       $user_profile = $facebook->api('/me','GET'); 
      } catch(FacebookApiException $e) { 
       error_log($e->getType()); 
       error_log($e->getMessage()); 
      }  
     } else { 
      $login_url = $facebook->getLoginUrl(array('redirect_uri' => $my_url)); 
      header("Location:" . $login_url); 
      $user_profile = $facebook->api('/me','GET'); 
     } 

您的帮助是非常感谢。

回答

0

你的错误是否来自这一行:$user_profile = $facebook->api('/me','GET');底部?

标题功能将重定向用户到Facebook登录页面,这将导致浏览器刷新。在此之后您将不会立即获得用户的访问令牌。您需要等到用户重定向到您的网站才能获取访问令牌。您需要将$my_url设置为指向您在此处编写的代码的同一页面。

+0

是的,那是我得到错误的地方。我之前通过将参数保留为登录网址的空白处尝试过。这会默认它重定向到同一页面。我仍然得到同样的错误。 – Siva

+0

您需要详细了解Facebook身份验证过程的工作原理。我认为你对这个概念有一些误解。 – Shang