我正在使用图形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对象。 抱歉我的英语不好,谢谢。
答案 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')。
希望这会对某人有所帮助!