如何在Java SDK中使用无摩擦请求函数获取50个随机的Facebook好友并发送我的应用程序的邀请?

时间:2012-08-20 16:34:29

标签: facebook facebook-graph-api facebook-javascript-sdk facebook-php-sdk

我需要获得50个随机的Facebook好友并将结果分配给此函数user_ids中使用的此变量sendRequestToRecipients()。我想做的就像这个例子:

Stack Overflow上的所有示例都不起作用,我需要一些帮助才能使此功能正常工作。

这是我的代码:

<body>
    <div id="fb-root"></div>
    <script src="http://connect.facebook.net/en_US/all.js"></script>

      <input type="button"
        onclick="sendRequestToRecipients();return false;"
        value="Send Request to Users Directly"/>

    <input type="button"
      onclick="sendRequestViaMultiFriendSelector(); return false;"
      value="Send Request to Many Users with MFS"
    />
    </p>

    <script>
      FB.init({
        appId  : '398994226827517',
        status : true,
        oauth  : true,
        Xfbml  : true,
        cookie : true,
        frictionlessRequests : true
      });

   function sendRequestToRecipients() {
    var user_ids = document.getElementsByName("user_ids")[0].value;
    FB.ui({method: 'apprequests',
      message: 'sample message',
       to: 'user_ids'
    }, requestCallback);
  }

  function sendRequestViaMultiFriendSelector() {
    FB.ui({method: 'apprequests',
      message: 'sample message'
    }, requestCallback);
  }

  function requestCallback(response) {
    // Handle callback here
  }

</script>

4 个答案:

答案 0 :(得分:2)

已批准的消息需要进行一些更改,例如以下

FB.api('/me/friends', function(friend) {
    var user_ids = [];
    $(friend.data).each(function(index, element) {
        user_ids.push(element.id);
    });
  FB.ui({method: 'apprequests',
    message: 'sample message'
    to: user_ids
  });
});

答案 1 :(得分:0)

为什么任何人都想邀请随机朋友加入应用?如果您这样做,您的应用可能会很快关闭垃圾邮件。让用户选择他们想邀请加入应用的人,不要试图强迫他们发送可能对该应用不感兴趣的随机朋友。

如果你真的必须这样做,你可以根据Requests Dialog documentation预填充'to'参数和你希望你的应用用户发送请求的用户的uid,文档中的示例是:

function sendRequestToRecipients() {
  FB.ui({method: 'apprequests',
    message: 'My Great Request',
    to: '499802820,499802852'
  }, requestCallback);
}

答案 2 :(得分:0)

如前所述,这对用户来说真的很烦人,因为他无法选择他的朋友。

如果你真的想这样做,这应该有效:

FB.api('/me/friends', function(friend) {
  FB.ui({method: 'apprequests',
    message: 'Random Friends',
    to: 'friend[0].id,friend[1].id,friend[2].id'
  }, requestCallback);
});

它将选择前3个朋友(不是随机但更好)。

答案 3 :(得分:-1)

PHP:

<?php 
 $fql = "SELECT uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me()) order by rand() limit 20";

 $response = $facebook->api(array(
     'method' => 'fql.query',
     'query' =>$fql,
 ));
 $c="";
 $ids = "";
 foreach ($response as $key => $value) {
   $ids .= $c.$value['uid'];
   =',';
 } ?> 

JavaScript的:

FB.ui({
    method       : 'apprequests',
    title        : '<?php echo $app->title;?>',
    message      : "<?php echo $app->img_description;?>",
    to: "<?php echo $ids;?>"
}, function (data) {});