Facebook graph api Facebook PHP SDK发生致命错误Facebook::ThrowapieException
您好,这是我向用户墙发送帖子的代码部分。如果没有例外,代码将完美地工作。每当发生异常时,我都会遇到这个恼人的致命错误 我已经尝试了很多方法来纠正错误,但脚本与我在代码的其他部分调用facebook api的脚本相同 我搜索了谷歌和stackoverflow。似乎没有人会犯这种错误。我是唯一一个吗?提前谢谢 这就是错误: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",
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 .'"; ');
}
}