我已经为我的网站用户集成了离线墙贴,这些用户已将他们的 FB 帐户与用户详细信息链接起来。我已将 FB-id、FB-Access token 存储在我的数据库中,并通过使用 PHP-SDK 库,我将 feed wall 发布集成到网站中。一切都很顺利,所有用户都可以在 Facebook 墙上收到消息。但今天所有的事情都白费了,因为它抛出了各种错误。我一直在寻找更多文档,但找不到此问题的确切相关解决方案。
我用于 FB-Wall 发布的代码行
$usid=$pageinfo['user']['id_facebook'];
$accestoken=$pageinfo['user']["facebook_accesstoken"];
if($pageinfo['user']['user_fbtoken']=='1')
$attachment = array(
'access_token' => $accestoken,
'message' => "myTaste || real restaurant reviews, share your taste on myTaste",
'name' => "My Favorite Restaurant is ".$business['name'].$business['location']['city']."-What is yours? ",
'link' => $business['personal_url'],
'description' => "",
'picture'=> "http://googima.com/images/mysite.gif"
);
$facebook->api("/".$usid."/feed", "post",$attachment);
}
错误消息:
Uncaught OAuthException: Error validating access token: Session has expired at unix time
Uncaught OAuthException: (#210) User not visible thrown in /hsphere/local/home/mysite.com/include/3rdparty/facebook-php-sdk/src/facebook.php
进行此离线墙贴的主要想法是用户每次在网站上进行评论时不会要求登录 FB。它需要使用我们存储在用户表中的 FB 详细信息自动发布。
最佳答案
授予 publish_stream
权限后,无需 access_token
。因此,即使没有有效的 session ,删除它并使用类似的东西也可以工作(只是一个例子):
$params = array(
'message' => "Test Message",
'picture'=> "http://path/to/image.jpg"
);
$post_id = $facebook->api("/$uid/feed", "post",$params);
有关更多信息,请参阅此 answer (编辑4)。顺便说一句,感谢 @zerkms 提供的此信息!
关于php - Facebook 验证访问 token 时出错 : Session has expired at unix time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5827901/