我正在尝试发布我在Facebook上管理的页面,并使用此代码。
$fb_key['key'] = 'fb_access_token';
$access = Model_const::read_key($fb_key);
$f = new facebook\fb($cfg);
$f->setAccessToken($access['value']);
$p = 'User is not logged in';
if($f->getUser())
{
$page_arg['access_token'] = $f->getAccessToken();
$page_arg['fields'] = 'access_token';
$page_info = $f->api("/$fb_id",'get',$page_arg);
$fb = array();
$fb['link'] = $uri;
$fb['message'] = Input::post('content');
$fb['access_token'] = $page_info['access_token'];
$p = $f->api("$fb_id/feed",'POST',$fb);
}
我在这里跟踪了thread,看来$ ap_info部分无法被FB api识别。阅读文档没有帮助,但我可以使用我的个人帐户发布。我想在我的facebook非人类页面上找到它。
我希望有人能通过PHP SDK提供如何做到这一点。
答案 0 :(得分:0)
实际上,您必须从管理员用户帐户检索页面访问令牌 这是文档的链接 https://developers.facebook.com/docs/facebook-login/access-tokens/#pagetokens
答案 1 :(得分:0)
我认为您错过了权限: manage_pages
使用您的登录代码添加此权限。
如果您使用 getLoginUrl(),请参阅here
如果使用直接身份验证对话框网址,请按以下方式添加:
$ dialog_url =“http://www.facebook.com/dialog/oauth?” 。 “client_id =”。 $ APP_ID 。 “& redirect_uri =”。 urlencode($ post_login_url) 。 “&安培;范围= manage_pages”;
另一件事,如果你想扩展永不过期的页面访问令牌,我在这个帖子中解释了相同的内容:What are the Steps to getting a Long Lasting Token For Posting To a Facebook Fan Page from a Server
其余的似乎是正确的。祝你好运。