2014-01-08 61 views
0

所以我想在我的网站上实现Facebook登录。我已经dowloaded SDK中,创建了一个应用程序,并粘贴在应用程序ID和密码。我无法让PHP Facebook API工作

我得到的问题是,虽然登录流程表现为工作,我得到的值从

的Facebook恢复正常 - >的getUser()

facebook-> getAccessToken()

呼叫至

$ user_profile = $ F acebook-> api('/ me','GET')

抛出一个异常说我没有访问令牌。

由于这是直接从SDK的未修改的示例代码我有点茫然 - 如果给出的编码示例不起作用,我该如何计算出什么? :)

同样的问题与此页面上的代码:

https://developers.facebook.com/docs/php/howto/profilewithgraphapi/

基本上做同样的事情,但处理异常,所以我走了一圈又一圈的“登录到Facebook的”循环。

我可以看到应用程序添加到我的Facebook配置文件中的列表确定当我登录,以便侧看来工作。似乎SDK或者我回来的访问令牌由于某种原因无效。

任何帮助或指针,我已经错过了将不胜感激!

感谢

贾斯汀

回答

0

试试这个

$config['cookie'] = true; 

和重新登录。

这是来自我用来登录的PHP代码。

+0

由于顶部下面的PHP代码,倒是与没有变化。每次点击登录链接时,我都会收到一个新的访问令牌,但仍然会导致api调用失败。如果我只刷新页面访问令牌仍然存在,所以cookie设置好。 – user3171220

0

下面是代码的完整流程,希望这有助于。

说的FB连接页面login.php中,我将对页面

require_once 'src/facebook.php'; //include the facebook php sdk 
$facebook = new Facebook(array(
    'appId' => FACEBOOK_APP_ID, 
    'secret' => FACEBOOK_APP_SECRET, 
    'cookie' => true, 
    'domain'=> FACEBOOK_CONNECT_DOMAIN 
)); 

$user = $facebook->getUser(); 
if($user){ 
    // lets set the access token before making a api call. 
    $new_access_token = $facebook->getAccessToken(); 
    $facebook->setAccessToken($new_access_token); 
    $user_profile = $facebook->api('/me','GET') 
    ...... 
    ...... 
}else{ 
    // display the fb login 
}