Facebook graph api Facebook PHP SDK发生致命错误Facebook::ThrowapieException

Facebook graph api Facebook PHP SDK发生致命错误Facebook::ThrowapieException,facebook-graph-api,exception,facebook-php-sdk,fatal-error,Facebook Graph Api,Exception,Facebook Php Sdk,Fatal Error,您好,这是我向用户墙发送帖子的代码部分。如果没有例外,代码将完美地工作。每当发生异常时,我都会遇到这个恼人的致命错误 我已经尝试了很多方法来纠正错误,但脚本与我在代码的其他部分调用facebook api的脚本相同 我搜索了谷歌和stackoverflow。似乎没有人会犯这种错误。我是唯一一个吗?提前谢谢 这就是错误: try { $return = $facebook->api("/" . $userFromDB["username"] . "/feed",

您好,这是我向用户墙发送帖子的代码部分。如果没有例外,代码将完美地工作。每当发生异常时,我都会遇到这个恼人的致命错误

我已经尝试了很多方法来纠正错误,但脚本与我在代码的其他部分调用facebook api的脚本相同

我搜索了谷歌和stackoverflow。似乎没有人会犯这种错误。我是唯一一个吗?提前谢谢

这就是错误:



    try {
        $return = $facebook->api("/" . $userFromDB["username"] . "/feed",
            "post", array(
                message => "",
                picture => "http://blabla.net/blabla1/img/autopost/" . $blabla2 . ".png",
                link => "http://apps.facebook.com/blabla1/?var2=" . $encryptedUserIds[$userFromDB["id"]], //$appPageURL
                caption => "Tikla, begen.",
                description => $var3,
                access_token => $auth["auth_code"],
            ));
        $usersPosted++;
    } catch (FacebookApiException $e) {
        $userProcessError++;
        write_log("blabla");
    }

我使用的Facebook sdk版本:3.2 Php版本:5.3

编辑:这是我为用户获取访问令牌的方式。我将其存储到数据库中:

Fatal error:  Call to undefined method Facebook::throwAPIException() in facebook-php-sdk/src/base_facebook.php on line 870

2012年11月06日编辑:问题仍然存在。请帮助。

请检查您的FB API秘密密钥设置是否正确。。。我也遇到了这个问题,但我已经纠正了秘密密钥之后,它是完美的工作

尝试使用以下脚本

致命错误:在第870行的Facebook php sdk/src/base_Facebook.php中调用未定义的方法Facebook::throwAPIException()

这个错误消息没有意义

如果我转到IDE中该文件的第870行,并按照方法名称进行声明,则它位于第1237行的同一文件中(所有内容均适用于当前版本3.2.0)

因此,这里并没有一个不确定的方法错误的合理原因


请检查SDK文件是否已正确上载到您的服务器,或者只是重新下载并重新上载它们,以确保文件内容没有损坏/截断的问题?

facebook凭据与我授权用户的凭据相同。也不例外。我不认为这是关于错误的api/密钥问题。谢谢。还有其他推荐吗?你是怎么得到认证码的?您正在使用
$facebook->getAccessToken()
?我添加了一段关于如何获取访问令牌的代码。当用户登录时,我不使用访问令牌。我用它在以后的另一个脚本中发布每日墙更新。Access令牌确实有保质期,您要存储多长时间?我存储它们的时间与过期时间一样长。过期时间值与访问令牌一起收集。如果达到过期时间,我会在db中将其标记为过期。每当用户访问我的应用程序时,url中都有代码值。我更新数据库中的访问令牌。所以访问令牌将以新的过期值续订。我再次将sdk文件上载到我的服务器。我会看看它是否再次发生,并将结果通知您。谢谢。如果代码处理无效的访问令牌,仍然是相同的致命错误。这太烦人了。


    if(isset($code) && $state==$authState){
        $accessTokenInformation=file_get_contents($accessTokenURL . $code);
        $tmpResult=explode("&", $accessTokenInformation);

        if(sizeof($tmpResult)==2){
            $tmpAT=explode("=", $tmpResult[0]);
            $tmpExp=explode("=", $tmpResult[1]);

            if(sizeof($tmpAT)==2 && sizeof($tmpExp)==2){
                $tmpDBUserAuth=check_db_for_authcode_for_user(...);
                if(empty($tmpDBUserAuth)){
                    insert_authcode_indb(...);
                    write_log(...);
                }else{
                    update_authcode_indb(...)
                    write_log(...);
                }

            }else{
                write_log(...);
                echo(' top.location.href="'. $OAuthURL .'"; ');
            }
        }else{
            write_log(...);
            echo(' top.location.href="'. $OAuthURL .'"; ');
        }
    }