这是代码,当帖子没有在“链接字段”上包含链接时,此代码工作得很好,可以在“字段消息”中发送带有或不带有链接的消息 在字段消息中发布的链接看起来像一个可点击的文本链接(http://www.mylinkposted.com/withoutmetadata/),您可以发送如下帖子:
嗨,我终于完成了我的新网站
根据您的经验,我将等待一些反馈。
但是,如果在“链接字段”中写入(复制)链接,它将从中提取元数据,并且帖子将包括描述,标题,标题,图像,来源......如果用户有帖子,它将看起来像在其他用户提要/墙上分享了一个链接,上面有所有的帖子参数,看起来很不错,但是通知它没有进入通知流,看起来真的很垃圾,只是发布而不发送通知,你认为什么可以解决这个问题问题?
$app_id = "xxxxxxxxxxxxxxxx";
$app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$site_url = "http://www.xxxxxxxxxxxxxxx.com/app00/index.php";
尝试{
include_once "src/facebook.php";
}catch(异常 $e){
错误日志($e);
}
$facebook = 新的 Facebook(数组(
'appId' => $app_id,
'秘密' => $app_secret,
));
$user = $facebook->getUser();
如果($用户){
尝试{
$user_profile = $facebook->api('/me');
}catch(FacebookApiException $e){
错误日志($e);
$用户=空;
}
}
如果($用户){
// 获取注销地址
$logoutUrl = $facebook->getLogoutUrl();
}别的{
// 获取登录地址
$loginUrl = $facebook->getLoginUrl(数组(
'范围' => '发布流用户组',
'redirect_uri' => $site_url,
));
}
如果($用户){
$查询=数组(
数组('方法' => 'GET','relative_url' => '/'.$user),
array('method' => 'GET', 'relative_url' => '/'.$user.'/friends'),
数组('方法' => 'GET','relative_url' => '/'.$user.'/groups'),
array('method' => 'GET', 'relative_url' => '/'.$user.'/likes'),
);
尝试{
$batchResponse = $facebook->api('?batch='.json_encode($queries), 'POST');
}catch(异常 $o){
错误日志($o);
}
//细绳。解码用作 PHP 数组。
$user_info = json_decode($batchResponse[0]['body'], TRUE);
$friends_list = json_decode($batchResponse[1]['body'], TRUE);
$groups = json_decode($batchResponse[2]['body'], TRUE);
$pages = json_decode($batchResponse[3]['body'], TRUE);
if(isset($_POST['submit_x'])){
if($_POST['message'] || $_POST['link'] || $_POST['picture']) {
$body = 数组(
'消息' => $_POST['消息'],
'链接' => $_POST['链接'],
);
$batchPost=array();
$i=1;
$标志=1;
foreach($_POST as $key => $value) {
if(strpos($key,"id_") === 0) {
$batchPost[] = array('method' => 'POST', 'relative_url' => "/$value/feed", 'body' => http_build_query($body));
如果($i++ == 50){
尝试{
$multiPostResponse = $facebook->api('?batch='.urlencode(json_encode($batchPost)), 'POST');
}catch(FacebookApiException $e){
错误日志($e);
echo("批量发布失败");
}
$标志=0;
未设置($batchPost);
$i=1;
}
}
}
如果(isset($batchPost)){
尝试{
$multiPostResponse = $facebook->api('?batch='.urlencode(json_encode($batchPost)), 'POST');
}catch(FacebookApiException $e){
错误日志($e);
echo("批量发布失败");
}
$标志=0;
}
}
别的 {
$标志=2;
}
}
}