2012-06-01 122 views
1

自2011年8月以来,我们一直在使用Facebook PHP SDK来做我们的OAuth注册和验证。上个月它破裂了。破产我的意思是$ me = $ facebook-> api('/ me'); 调用突然开始返回一个空数组 - 没有任何错误抛出。 几个月没有对系统的这部分进行更改。Facebook的PHP SDK停止返回API值

我以此为契机迁移到v3.1.1,但没有任何效果。

我们在jsp/Tomcat安装中运行一个php页面,所以我们使用了quercus。我将它作为普通的php运行并获得相同的结果。

由于我没有看到提出的一般警告,我认为它必须是我们网站上的东西,但我无法隔离任何东西。任何想法?这里是PHP代码(我们有一个用户,所以我们在代码通过身份验证的模块 - $我数组包含什么)

<?php 
$request = quercus_servlet_request(); 
$page = $request->getAttribute("page"); 

include_once 'facebook.php'; 

$facebook = new Facebook(array(
'appId' => $request->getAttribute("appId"), 
'secret' => $request->getAttribute("secretKey"), 
'cookie' => true 
)); 


if(is_null($facebook->getUser())) { 
    $url = $facebook->getLoginUrl(array('next' => $request- >getAttribute("canvasUrl"),'req_perms' => 'publish_stream')); 
    $page->Log("LOGIN URL",$url); 
    echo "<script type='text/javascript'>window.top.location.href = '$url';</script>"; 
    exit; 
} else { 
    try { 
     $page->Log("AUTH","AUTHENTICATED"); 
    $uid = $facebook->getUser(); 
     $me = $facebook->api('/me'); 
     $page->Log("UID",$uid); 
     $page->Log("ME array",print_r($me, true)); 

     $request->getSession()->setAttribute("authenticated","T"); 
     $request->getSession()->setAttribute("fbuid",strval($uid)); 
     $request->getSession()->setAttribute("fname",$me['first_name']); 
     $request->getSession()->setAttribute("lname",$me['last_name']); 
     $request->getSession()->setAttribute("accesstoken",$facebook- >getAccessToken()); 
    //$page->Log("fbuid",$request->getSession()->getAttribute("fbuid")); 

.......

回答

1

现在Facebook是有世界各地的一些停机时间。您可能会看到一些奇怪的问题。

但是你应该考虑测试您的应用程序使用图形API探险here并确认问题就在你身边或Facebook enter image description here

选择在右上角的应用程序和查询API。

对我来说,它工作得很好(印度)。