【发布时间】:2016-11-30 20:41:38
【问题描述】:
我已经为我的网站用户集成了离线墙贴,这些用户已经将他们的 FB 帐户与那里的用户详细信息相关联。我已将 FB-id、FB-Access 令牌存储在我的数据库中,并通过使用 PHP-SDK 库,我已将提要墙发布在网站中。一切都很好,所有用户都在 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 详细信息自动发布。
【问题讨论】:
-
@ifaour:我的做法与您在之前的论坛回复中提到的方式相同,例如 EDIT:4,EDIT2。我昨天得到了结果,一切都很好,但是今天它抛出了以下错误。
-
对不起!我以为你在取回一些东西!发帖不需要
offline_access权限。publish_stream就是您所需要的,然后只需从您的数组中删除access_token! -
@ifaour:我已经从数组列表中删除了访问令牌,到目前为止一切正常。我希望这肯定会起作用,让我明天在工作中再次检查它。真的我非常感谢您的想法和评估。您总是在 FB API 中摇摆不定。
-
对于像我这样的其他人 - 直接的答案是使用 app_access_token 而不是 user_access_token ,这是获取 app_access_token 的方法 -developers.facebook.com/docs/opengraph/howtos/…