图表Api错误发布为页面管理员

时间:2010-12-23 20:55:00

标签: php facebook-graph-api

我正在使用图形api在php中开发一个应用程序。 所以,我必须以管理员的身份将消息发布到Facebook页面。我跟着这个:How to post to Facebookpage as admin via API (Php SDK)?。 它运行了好几次,但现在它返回了这个错误:  PHP致命错误:未捕获的GraphMethodException:不支持的发布请求。\ n在第453行的/home/redmarv/public_html/owl-test/facebook.php中抛出

但找不到问题所在。即使有谷歌或搜索其他帖子就在那里。 但我无法理解为什么它会工作几次而不是。 没有改变什么。

实际上我使用这段代码:

include_once "fbmain.php";

echo 'Hi ' . $uid . '<br />';

$fb_accounts = $facebook->api('/me/accounts');

$access_token = $fb_accounts['data'][1]['access_token'];

echo 'Access Token= ' . $access_token;

$facebook->api('/page_id/feed', 'post', array('message'=>'OWL F TOOLS N TEST by: '.$uid,  'access_token'=>$access_token, 'cb'=>''));

包含的fbmain.php执行会话控制并创建$ facebook对象。 抱歉我的英语不好,谢谢。

2 个答案:

答案 0 :(得分:2)

如果用户在制作图表请求时未登录您的应用,您将收到上述错误。

我假设'fbmain.php'中的代码处理用户身份验证并返回$ uid,但如果您在点击此脚本之前尚未登录,则包含'fbmain.php'后的代码为可能在Facebook进行登录重定向之前运行。

在使用之前,请尝试检查以确保$ uid实际上包含有效整数。

include_once "fbmain.php";

if(is_int($uid) && $uid > 0) {
  echo 'Hi ' . $uid . '<br />';
  $fb_accounts = $facebook->api('/me/accounts');
  $access_token = $fb_accounts['data'][1]['access_token'];
  echo 'Access Token= ' . $access_token;
  $facebook->api('/page_id/feed', 'post', array('message'=>'OWL F TOOLS N TEST by: '.$uid,  'access_token'=>$access_token, 'cb'=>''));
} else {
  // wait for facebook to redirect page to loginUrl or do something else
}

答案 1 :(得分:0)

对于其他有同样问题的人,我摆脱了它。 解决方案非常简单,如果您希望在页面墙上作为页面本身发布,则必须更改此信息:

$facebook->api('/page_id/feed', 'post', array('message'=>'OWL F TOOLS N TEST by: '.$uid,  'access_token'=>$access_token, 'cb'=>''));

有了这个:

$facebook->api('/me/feed', 'post', array('message'=>'OWL F TOOLS N TEST by: '.$uid,  'access_token'=>$access_token, 'cb'=>''));

这非常简单,如果您是要发布到墙上的页面(使用它的access_token)(那么'/ me / feed')。

希望这会对某人有所帮助!