2011-01-05 117 views
1

我为网站创建了一个CMS,并且想要添加功能将某些内容(例如:新闻)发布到该网站的FB页面[不是用户配置文件] 。FB GraphAPI:在FB页面的墙上从另一个网站发布

我读过FB的文档,可能会发现我需要一个FB应用程序,它必须能够访问该页面。然后,我将能够从我的网站进行身份验证,并将链接发布到页面上。

我已经创建了示例页面,并且为空应用程序(无工作代码)。然后我增加了它的页面[在应用程序配置文件页上有一个按钮“添加到我的页面”]。应用程序从来没有要求任何权限,事实上,我不知道如何“强制”我的应用程序请求从页面的权限...

现在,从我的服务器我认证为应用程序:

$postArr = Array(
      'grant_type'=>'client_credentials', 
      'scope'=>'publish_stream', 
      'client_id'=>$appId, 
      'client_secret'=>$appSecret 
      ); 
$access_token = CURL_post('https://graph.facebook.com/oauth/access_token',$postArr,true); 

我得到一个访问令牌,并尝试发布到页面的墙:

$postArr = Array(
      'access_token'=>$access, 
      'message'=>"Message!", 
      'link'=>'http://egern.net/', 
      'name'=>"TITLE", 
      'caption'=>"TITLE2!"); 
$r = CURL_post("https://graph.facebook.com/MYPAGEID/feed",$postArr,true); 

我得到以下错误:(#200)的用户无权执行此操作的应用程序

现在我无法理解:页面应该如何授权应用程序?

谢谢。

回答

1

为了能够发布使用图形API你的页面有几个步骤来做到这一点:

  1. 页的管理员需要许可manage_pagesreference安装应用程序。而publish_stream步骤3
  2. 现在查询账户方法->api('/me/accounts?access_token=XXX')用你刚才会检索所有网页(账户)及其相应的access_token
  3. 使用ACCESS_TOKEN到post您的“新闻”的网页,你的->api('/page_id/feed', 'post', $postArr)
  4. 页的access_token

几乎相同的指令可用here

+0

非常感谢您的回答! – 2011-01-06 09:39:44

+0

所以,我需要验证页面的管理员(而不是应用程序),一切都会工作。但是现在我找不到如何将PHP认证为FIXED用户(管理员)!我知道如何显示每个人的登录页面,但我不需要登录页面,我希望PHP自动登录为一个FIXED用户...再次感谢 – 2011-01-06 09:42:26

+0

我不认为图形api有这个功能,但什么你可以做的是获得'offline_access'权限,这样你永远不会再次验证用户 – ifaour 2011-01-06 18:51:29

相关问题