【问题标题】:How to get 50 random facebook friends and send invitation for my app using frictionless request function on in Java SDK?如何使用 Java SDK 中的无摩擦请求功能获取 50 个随机 Facebook 好友并为我的应用发送邀请?
【发布时间】:2012-08-20 16:34:29
【问题描述】:

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

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>

【问题讨论】:

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


    【解决方案1】:

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

    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
      });
    });
    

    【讨论】:

      【解决方案2】:

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

      如果你真的想这样做,这应该可行:

      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 个朋友(不是随机的,而是更好的)。

      【讨论】:

      • Facebook 更新了其平台政策,因此应用程序可能不会提供全选选项或预先选择多个收件人来接收请求。从 2014 年 1 月 8 日起,Facebook 将取消“全选”或“预选”请求的功能。
      【解决方案3】:

      为什么会有人想邀请随机朋友加入应用?如果您这样做,您的应用程序可能会因垃圾邮件而迅速关闭。让用户选择他们想邀请谁加入应用程序,不要试图强迫他们向可能对应用程序不感兴趣的随机朋友发送垃圾邮件。

      如果您确实必须这样做,您可以根据Requests Dialog documentation 使用您希望应用程序的用户向其发送请求的用户的 uid 预填充“to”参数,文档中的示例是:

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

      【讨论】:

      • 我看到很多类似这样的应用程序运行了很长时间,我知道这有点垃圾邮件,但从长远来看,你有权利的 Igy 不是一个好的解决方案。谢谢
      【解决方案4】:

      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) {});
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多