我正在使用Facebook -registration和PHP-SDK库。注册过程正常运行。我在我的用户表中存储Facebook userid,user_access_token。我正在整合网站上用户评论的Facebook Feed帖子。当用户进行一些评论时,我们需要更新他的Facebook Feed(Wall)而不再询问他的FBlogin,而是我们必须使用存储在数据库中的现有access_token。
我使用以下代码行来执行此操作,
$facebook->api("/".$usid."/feed", "post", array("access_token" => $accestoken, "message"=>"Welcome to the site, review ...!"));
但我总是收到以下错误:
#200)用户尚未授权该应用程序在第543行的facebook.php中执行此操作
答案 0 :(得分:2)
显示消息是因为您尚未请求发布到用户墙(publish_stream)的权限。
您可以通过在Facebook中验证用户
来实现https://www.facebook.com/login.php?api_key=1234567890&cancel_url=http://www.yoursiteurl.ro/facebook_cancel/&next=http://www.yoursiteurl.ro/facebook_login/&fbconnect=1&return_session=1&session_version=3&v=1.0&display=page&的 req_perms = user_about_me,user_birthday,publish_stream,offline_access 强>
next_url 将是用户授权您的应用后,facebook将在会话对象中返回用户访问令牌存储的网址。
publish_stream 允许您发布到用户的墙上,而 offline_access 会为您提供一个可以保存且不会过期的访问令牌,因此您可以发布随时都可以访问用户的墙。
有关可用权限的列表,请查看http://developers.facebook.com/docs/authentication/permissions/
答案 1 :(得分:0)
访问令牌无效,您必须通过OAuth流程引导用户获取新令牌。