我使用最新版本的 PHP SDK(版本 5)创建了一个 Facebook 应用程序,该应用程序在运行时将帖子发布到我的 Facebook 页面。
这是有效的...但是帖子将以“私人”身份进入页面,因此只有我在登录我的个人 Facebook 页面时才能看到这些帖子。公众看不到它们。
有人知道这是为什么吗?我是否正确地假设我需要“将应用程序提交给 Facebook 进行审核”才能将公共帖子发送到我的页面?
下面是我的代码:
define('FACEBOOK_SDK_V4_SRC_DIR', __DIR__.'/src/facebook-sdk-v5/');
require_once(__DIR__.'/src/facebook-sdk-v5/autoload.php');
//Set your Facebook API settings
$fb = new Facebook\Facebook([
'app_id' => 'apptoken',
'app_secret' => 'appsecrettoken',
'default_graph_version' => 'v2.2',
]);
//Post property to Facebook
$linkData = [
'link' => 'http://www.google.co.uk',
'message' => 'Test message'
];
try {
$response = $fb->post('/me/feed', $linkData, 'thepageaccesstokenhere');
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: '.$e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: '.$e->getMessage();
exit;
}
$graphNode = $response->getGraphNode();
一种解决方案是公开该应用程序。
默认情况下,我相信它处于开发模式。
为此,请按照以下步骤操作:
1. 前往 https://developers.facebook.com
2. 从左侧边栏选择“应用程序审核”
3. 设置“公开您的应用程序吗?”到“是”
即使您未登录,您的应用程序创建的页面帖子也应该可用。
您是 Facebook 应用程序和页面管理员。这就是为什么您可以作为页面发布,但它仅用于测试目的,因此对其他用户隐藏。您必须申请许可(post_as_page)才能实现此目的。
转到管理您的应用程序:https://developers.facebook.com/apps/
并确保您的应用程序处于实时模式