Facebook的朋友选择器与柜台

时间:2010-10-21 14:12:46

标签: javascript facebook

我正在尝试让朋友选择器正常工作,唯一的问题是我不想发出邀请,我只想要计算用户选择的朋友。

我需要获取此值并将其应用于一些将更新页面上的范围的JavaScript代码。

我已经和谷歌叔叔谈过了,他无能为力。

2 个答案:

答案 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(但它不是先进的)。