2012-04-23 51 views
0

我正在使用Codeignitor。facebook用户认证php

我想通过我的应用程序发布到Facebook。

的问题是,它总是返回您还没有登录。

这里是我的尝试..

function postTofb() 
{ 


require_once("pocket/fb/facebook.php"); 
     $fbconfig = array(); 
     $fbconfig['appId'] = 'app_id'; 
     $fbconfig['secret'] = 'app_secret'; 
     $fbconfig['baseurl'] = "site_name"; 

       $facebook = new Facebook($fbconfig); 
     $user = $facebook->getUser(); 


       if($user) 
      { 
      try { 

       $user_profile = $facebook->api('/me'); 
      $ID = $user_profile['id']; 
      echo $ID; 

       } 
     catch (FacebookApiException $e) 
     { 

     echo $e; 

      } 


     } 
     else 
     { 

     //else starts 

      $loginUrl = $facebook->getLoginUrl(
      array(
       'scope'=> 'email,offline_access,publish_stream,user_birthday,user_location,user_work_history,user_about_me,user_hometown', 
       'redirect_uri'=>$fbconfig['baseurl'] 
      ) 
     ); 
    $data["status"] = FALSE; 
    $data["url"] = $loginUrl; 
    echo json_encode($data); 
    //else ends 
     } 
    } 

现在我通过Ajax调用该函数...但它总是与错误的响应...我的意思是其他部分。

这里什么我得到

{"status":false,"url":"https:\/\/www.facebook.com\/dialog\/oauth?client_id=281255791959236&redirect_uri=http%3A%2F%2Fwww.MY_SITE_NAME.com%2F&state=3d19a96f48022344222f518609f30537&scope=email%2Coffline_access%2Cpublish_stream%2Cuser_birthday%2Cuser_location%2Cuser_work_history%2Cuser_about_me%2Cuser_hometown"} 

看起来像我错过了一些点......请帮助我..

谢谢。

回答

0

Facebook不再支持离线访问,只有您可以做的事情是生成一个最多60天的令牌。

+0

好的,所以我需要获取accessTocken,对吧? – Red 2012-04-23 16:40:38

+0

那么首先尝试没有脱机访问好吗? – JonathanRomer 2012-04-23 16:49:49

+0

是啊..如何可以生成令牌? – Red 2012-04-23 16:53:27

0

问题与LoginUrl

有关我删除了一些权限参数和它的工作。

loginUrl = $facebook->getLoginUrl(array("scope")=>"publish_stream");

谢谢。