当我使用PUBLISH_PAGES时,获取权限PUBLISH_ACTIONS不可用(&Q) [英] Getting "The permission publish_actions are not available" when I am using publish_pages

查看:20
本文介绍了当我使用PUBLISH_PAGES时,获取权限PUBLISH_ACTIONS不可用(&Q)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直试图使用Facebook php SDK在我的Facebook页面上发表帖子,但我收到了错误消息"(#200)权限PUBLISH_ACTIONS不可用",奇怪的是,我要求的是"Pages_Show_List、Manage_Pages、Publish_Pages和User_Photos"权限。我一直在找原因,但什么也找不到。

我是这样要求的:

$loginUrl = $helper->getLoginUrl(
'http://localhost:8080/fbTest/fb-callback.php',
array('scope' => 'pages_show_list, manage_pages, publish_pages, user_photos'));

这是我的帖子:

$res = $fb->post($pageID . '/photos/', $data, $accessToken);
$post = $res->getGraphObject();

我对此非常陌生,我已经尽可能多地阅读了文档,但我找不到解决方案。我的应用程序还没有发布,我还在用它测试东西,我已经使用了我的管理员帐户和我创建的一个测试用户…(为了记录,我设法使用javascript SDK发布了帖子,我在那里没有问题,我发布了帖子)。你知道问题出在哪里吗?我主要使用Facebook为登录提供的示例代码,以及我在这里使用的大部分内容。谢谢!

推荐答案

解决方案:
我得到了解决方案,正如强大的WizKid所说,我使用的是用户令牌,而不是页面令牌。

为了获取我的页面访问令牌,我使用了以下代码:

$accessToken = $helper->getAccessToken();
$longLivedToken = $fb->getOAuth2Client()->getLongLivedAccessToken($accessToken);
$fb->setDefaultAccessToken($longLivedToken);
$response = $fb->sendRequest('GET', $pageID, ['fields' => 'access_token']) - 
>getDecodedBody();
$foreverPageAccessToken = $response['access_token'];
$fb->setDefaultAccessToken($foreverPageAccessToken);

然后我这样提出了我的请求:

// POST request.
$res = $fb->post($pageID . '/photos/', $data, $foreverPageAccessToken);
$post = $res->getGraphObject();

它对我来说工作得很好!

我找到的有关如何获取页面访问令牌的来源:https://github.com/facebook/php-graph-sdk/issues/785

这篇关于当我使用PUBLISH_PAGES时,获取权限PUBLISH_ACTIONS不可用(&Q)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆