Php Facebook页面-发布到用户墙(在用户喜欢该页面后)
我希望它没有那么复杂,但由于Facebook已经改变了很多API(关于权限等),我发现很多过时的信息对我没有帮助。 情况是:Php Facebook页面-发布到用户墙(在用户喜欢该页面后),php,facebook,facebook-php-sdk,Php,Facebook,Facebook Php Sdk,我希望它没有那么复杂,但由于Facebook已经改变了很多API(关于权限等),我发现很多过时的信息对我没有帮助。 情况是: 我有一个带有页面标签的Facebook页面 我得到了一个与该页面相关联的Facebook应用程序(通过标签) 我自己的WebApp通过Facebook PHP-SDK发布到页面的墙上,每个用户都可以看到流中的新闻 问题:如何通过该应用程序向用户发布时间线 到目前为止我的代码(张贴到页面的墙上) 这很好,但该消息在喜欢该页面的用户的时间线中不可用,仅在他们自己的流中可用。有
这很好,但该消息在喜欢该页面的用户的时间线中不可用,仅在他们自己的流中可用。有可能发布到他们的时间表吗?不知道您是否仍然需要帮助。但以防万一,这段代码对我来说很有用。它假定您有一个已登录的用户。并将其发布到用户的时间线上。这个代码没有得到许可,我相信,你需要工作,因为Facebook有平台TOS。试试这个:
require_once('libs/facebook.php');
// init new facebook class instance with app info (taken from the DB)
$facebook = new Facebook(array(
'appId' => 'your app id here',
'secret' => 'your app secret here'
));
$fb_user_id = $facebook->getUser();
$location = "". $facebook->getLoginUrl(array('scope' => 'publish_stream'));
if ($fb_user_id) {
try {
$fb_user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
$fb_user_id = NULL;
print '<script language="javascript" type="text/javascript"> top.location.href="'. $location .'"; </script>';
die();
}
} else {
print '<script language="javascript" type="text/javascript"> top.location.href="'. $location .'"; </script>';
die();
}
$ret_obj = $facebook->api('/me/feed', 'POST',
array(
'link' => 'www.google.com',
'message' => 'Google me!'
));
require_once('libs/facebook.php');
//使用应用程序信息初始化新的facebook类实例(取自数据库)
$facebook=新的facebook(数组)(
“appId”=>“此处为您的应用程序id”,
“机密”=>“您的应用程序机密在此”
));
$fb_user_id=$facebook->getUser();
$location=”“$facebook->getLoginUrl(数组('scope'=>'publish_stream');
if($fb\U用户\U id){
试一试{
$fb_user_profile=$facebook->api('/me');
}捕获(FacebookApiException$e){
$fb_user_id=NULL;
打印“top.location.href=”.$location.“;”;
模具();
}
}否则{
打印“top.location.href=”.$location.“;”;
模具();
}
$ret_obj=$facebook->api('/me/feed',POST',
排列(
“link”=>“www.google.com”,
“消息”=>“用谷歌搜索我!”
));
在获得权限且用户登录后,要求用户登录到您的应用程序,并确保您拥有发布流权限。您可以通过使用所需参数(检查文档)向“/me/feed”发出post请求,将其张贴到他们的墙上。但我认为这是FB不允许的(用户应该知道你的应用程序会发布,否则你可能会破坏FB的平台TOS)。您可能想在实现FB可能会限制您的应用程序的发布权限等内容之前检查他们的TOS。在您上面的代码中,即使用户(不是管理员)喜欢该页面,它是否也会发布?我已经用我的另一个帐户试过了,它被设置为用户,但是没有发布。它只在管理员使用页面时发布。
require_once('libs/facebook.php');
// init new facebook class instance with app info (taken from the DB)
$facebook = new Facebook(array(
'appId' => 'your app id here',
'secret' => 'your app secret here'
));
$fb_user_id = $facebook->getUser();
$location = "". $facebook->getLoginUrl(array('scope' => 'publish_stream'));
if ($fb_user_id) {
try {
$fb_user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
$fb_user_id = NULL;
print '<script language="javascript" type="text/javascript"> top.location.href="'. $location .'"; </script>';
die();
}
} else {
print '<script language="javascript" type="text/javascript"> top.location.href="'. $location .'"; </script>';
die();
}
$ret_obj = $facebook->api('/me/feed', 'POST',
array(
'link' => 'www.google.com',
'message' => 'Google me!'
));