2012-10-26 46 views
0

我真的很难理解这里发生了什么。我可以在OpenGraph测试程序中获得用户详细信息,或者只是点击URL https://graph.facebook.com/me?access_token=VALID_TOKEN或使用file_get_contents,但是当尝试Codeigniter Facebook库时,我收到错误“必须使用活动访问令牌...”如果我只是尝试一个CURL GET我没有输出。我知道access_token是有效的,为什么他们不工作?总体目标是从iOS App获取一个access_token,并使用它通过使用og.likes的网络服务器来执行Like操作。如何使用Codeigniter从Access令牌获取Facebook用户详细信息?

我的测试功能:

function me_test(){ 
    $access_token = "VALID_TOKEN"; 
    $url = 'https://graph.facebook.com/me?access_token='; 
    $url_full = $url.$access_token; 

    $result = file_get_contents($url_full); 
    echo $result; 

    // Try Codeigniter Facebook Library 
    try { 
     $user = $this->facebook->api('/me?access_token='.$access_token); 
    } catch (Exception $e) { 
     print_r($e); 
    } 

    // Codeigniter CURL Library 
    $this->load->library('curl'); 
    echo $this->curl->simple_get($url_full); 
    $info = $this->curl->info; 
    print_r($info); 

} 
+0

你确定'$ access_token'中的'access_token'实际上是你正在测试的OG测试仪中的'access_token'吗?我不认为这与CI有什么关系。 – ifaour

+0

@ifaour我刚刚发现了一些可能有所帮助的东西。我重新运行我的测试函数,这次CI函数库工作,file_get_contents发生了错误。如果我只是点击URL https://graph.facebook.com/me?access_token=VALID_TOKEN,我会收到消息“..user logged out ...”。是否有某种缓存或sesssion问题?当令牌现在过期时,CI库调用应该会发生错误。 –

+0

Facebook SDK应该可以正常工作。你说你从移动应用程序接收到这个访问令牌,那么你可能会在那里登录用户,因此'access_token'变得无效。 – ifaour

回答

0

我也面临这个问题,并找到替代的方式来获得用户数据。你可以试试这个

function me_test(){ 
    $userId = $this->facebook->getUser(); //This will return the current user id 

    // Try Codeigniter Facebook Library 
    try { 
     $user = $this->facebook->api('/'.$userId); 
     //When you pass the userid you dont need to provide access token 
    } catch (Exception $e) { 
     print_r($e); 
    }  
} 
相关问题