FB Graph API:在FB页面上发布从另一个网站开始

时间:2011-01-05 21:06:11

标签: php facebook-graph-api

我正在为网站创建CMS,并希望添加功能以将某些内容(例如:新闻)发布到该网站的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);

我获得了一个访问令牌,并尝试发布到Page的墙上:

$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)用户未授权应用程序执行此操作

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

感谢。

1 个答案:

答案 0 :(得分:1)

为了能够使用图形api发布到您的页面,有几个步骤可以执行此操作:

  1. 页面管理员需要使用manage_pagesreference权限安装您的应用程序。并publish_stream执行第3步
  2. 现在使用您刚刚获得的access_token查询帐户方法->api('/me/accounts?access_token=XXX')将使用相应的access_token
  3. 检索您的所有网页(帐户)
  4. 将页面access_token用于post您的“新闻”页面->api('/page_id/feed', 'post', $postArr)
  5. 几乎相同的说明here