我正在构建 Facebook 应用程序,我希望该应用程序将预定义的消息发布到:
1) 用户的新闻提要(即任何使用过该应用程序的用户)
2)如果可能的话,用户的朋友的新闻提要甚至他们的墙。
目前,我只使用以下代码将其发布到用户的墙上:
if(isset($_POST['mapp_message'])){
try {
$facebook->api('/me/feed', 'POST', array(
'access_token' => $facebook->getAccessToken(),
'message' => $_POST['mapp_message'],
'name' => "This is the title of my post",
'description' => "This is the body of the post with lots of text in it",
'link' => 'http://www.mysite.com',
'picture'=>"http://lipsum.com/images/lipsum07.gif",
'privacy' => array('value' => 'EVERYONE')
));
$sent = true;
} catch (FacebookApiException $e) {
//do something about it
}
}
注意:我刚刚发现它们是用户墙和新闻提要之间的区别。
我已经在谷歌上搜索了几个小时,但我无法弄清楚。所以任何帮助表示赞赏。
问候
更新
好的,我取得了一些进展。我设法让它张贴在用户朋友的墙上(即使用过该应用程序的人的朋友)。代码如下:
try {
$userData = $facebook->api('/me');
} catch (FacebookApiException $e) {
//do something about it
}
try {
$friendsTmp = $facebook->api('/' . $userData['id'] . '/friends');
shuffle($friendsTmp['data']);
array_splice($friendsTmp['data'], 5);
$friends = $friendsTmp['data'];
} catch (FacebookApiException $e) {
//do something about it
}
这段代码随机选择用户的5个使用过该应用的朋友贴在他们的墙上,代码如下:
foreach($friends as $k => $i){
$facebook->api('/'.$i['id'].'/feed', 'POST', array(
'access_token' => $facebook->getAccessToken(),
'message' => $_POST['mapp_message'],
'name' => "This is the title of my post",
'description' => "This is the body of the post with lots of text in it",
'link' => 'http://www.mysite.com',
'picture'=>"http://lipsum.com/images/lipsum07.gif"
//'privacy' => array('value' => 'EVERYONE')
));
}
但是,如果我可以将其发布到新闻源中,我仍然更愿意。