我正在尝试让朋友选择器正常工作,唯一的问题是我不想发出邀请,我只想要计算用户选择的朋友。
我需要获取此值并将其应用于一些将更新页面上的范围的JavaScript代码。
我已经和谷歌叔叔谈过了,他无能为力。
答案 0 :(得分:1)
我使用了以下内容,这是有效的(可能需要一些改进):
<?php
require 'facebook-php-sdk/src/facebook.php';
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => 'xxx',
'secret' => 'xxx',
'cookie' => true,
));
$session = $facebook->getSession();
$me = null;
// Session based API call.
if ($session) {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
$f_data = $facebook->api('/me/friends');
$friends = array();
foreach ($f_data['data'] as $friend) {
$friends[$friend['name']] = $friend['id'];
}
ksort($friends);
} catch (FacebookApiException $e) {
error_log($e);
}
}
?>
<div>You have <span id="numfriends">0 friends</span> selected</div>
<div class="friend-container">
<?php foreach ($friends as $friend): ?>
<div class="friend-profile">
<fb:profile-pic uid="<?php echo $friend; ?>" linked="false" size="square" /><br/>
<fb:name uid="<?php echo $friend; ?>" linked="false" />
</div>
<?php endforeach; ?>
</div>
<script>
<!--
function updateFriends(obj)
{
obj.toggleClassName('selected');
var friends = 0;
friends_arr = obj.getParentNode().getChildNodes();
for (friend in friends_arr)
{
if(typeof(friends_arr[friend]) == 'object')
{
if (friends_arr[friend].getClassName().indexOf('selected') != -1)
{
friends++;
}
}
}
document.getElementById('numfriends').setTextValue(friends + ' friends');
}
//-->
</script>
答案 1 :(得分:0)
您无法在fb:multi-friend-selector
之外使用fb:request-form
。您可以使用fb:multi-friend-input
(但它不是先进的)。