【发布时间】:2015-04-10 15:23:45
【问题描述】:
我已经设置了一个 facebook 应用程序来将图像/视频发布到一个特定的粉丝页面。它请求“publish_actions”和“manage_pages”权限。它处于开发者模式,除了发布到这个 Facebook 页面之外,我无意扩展功能。
代码正常运行,它发布到正确的页面,并且在登录到开发人员帐户/页面管理员(相同帐户)时一切看起来都很好。 但其他 facebook 用户无法看到通过该应用发布的帖子。我的印象是应用程序不需要通过这些内部应用程序的审核流程?
这是发布到页面的代码的快速精简版本:
FacebookSession::setDefaultApplication($settings['app_id'], $settings['secret']);
//This is user access_token not the pages.
$session = new FacebookSession( $settings['access_token'] );
$pageTokenResponse = (new FacebookRequest(
$session
, 'GET', '/' . $settings['page_id']
, array( 'fields' => 'access_token' )
))->execute()->getGraphObject(GraphPage::className());
//Retrieved Page Token
$pageToken = $pageTokenResponse->getProperty("access_token");
uploadUrlToFacebook($imgurl, $item->get_title(), $session, $pageToken, $settings['page_id']);
function uploadUrlToFacebook($url, $title, $session, $pageToken, $pageId){
$request = new FacebookRequest(
$session,
'POST',
"/$pageId/photos",
array (
'access_token' => $pageToken
,'url' => $url
,'message' => $title
)
);
$response = $request->execute();
}
我确定代码或我的应用程序设置中的某处存在愚蠢的错误,但为什么 我 可以看到帖子而其他人却不能?
【问题讨论】:
-
如果您在 Facebook 上查看应用程序的设置,就会发现有一个可以控制这一点。我相信它被称为沙盒模式。虽然它已启用,但只有开发人员可以与应用交互,以便他们可以在它“上线”之前对其进行测试。
-
看起来沙盒模式现在已被实时/非实时切换所取代,但使用像这样的 publish_actions 的应用程序必须经过审核过程。我真的想避免这种情况,因为它永远不会向其他用户开放。
-
您无需获得批准即可上线应用。只需点击按钮
-
让您的应用上线与审核无关。如果您希望通过它发布的内容对公众可见,您必须设置您的应用。
-
是的,就是这样。在我正确理解流程之前,我已经选择了一些要审核的项目,因此我最终处于无法使其生效的状态,因为我有待审核的项目。我从审查队列中删除了权限,上线了,一切都很好。谢谢!
标签: php facebook facebook-graph-api facebook-php-sdk