1

自 2011 年 8 月以来,我们一直在使用 Facebook php sdk 进行 oauth 注册和验证。上个月的某个时候它坏了。打破我的意思是 $me = $facebook->api('/me'); 调用突然开始返回一个空白数组 - 没有抛出任何错误。几个月来没有对系统的这一部分进行任何更改。

我借此机会迁移到 v3.1.1,但没有任何效果。

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

由于我没有看到发出一般警报,我认为它一定是我们站点中的某些东西,但我无法隔离任何东西。任何想法?这是 php 代码(我们有一个用户,所以我们在 AUTHENTICATED 代码块中 - $me 数组不包含任何内容)

<?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"));

…………

4

1 回答 1

1

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

但是您应该考虑在这里使用图形 API 资源管理器测试您的应用程序并确认问题在您身边或 Facebook 在此处输入图像描述

在右上角选择您的应用并查询 API。

对我来说它工作正常(印度)。

于 2012-06-01T07:29:28.467 回答