【问题标题】:How to send app request to user all friends using Facebook request dialog?如何使用 Facebook 请求对话框向用户所有朋友发送应用请求?
【发布时间】:2012-07-12 07:30:53
【问题描述】:

我可以使用请求对话框向用户的 50 个朋友发送应用请求,并修改 to= 字段,但我想像此示例应用程序那样向用户的所有朋友发送请求:Invite your friend button for pages

此应用先邀请用户前 50 个朋友,然后再邀请用户后 50 个朋友,依此类推

在我的代码中,我使用 PHP 将用户转发到此 URL

https://www.facebook.com/dialog/apprequests?app_id=443468799026324
&to=" . $friend_ids .  "
&max_recipients=50&filters=app_non_users
&redirect_uri=" . urlencode($canvas_page2)  . "
&message=" . $message;

Facebook offical guide for request dialogue

我该如何从这里开始?

【问题讨论】:

  • 听起来您要求您的用户邀请他们所有的朋友加入您的应用程序...这违反了 FB 政策...允许您的用户选择某些朋友来邀请,否则您将面临被击中的风险您的应用程序的请求限制...
  • @Lix 如果用户希望他可以先单击邀请按钮并返回索引页面,则没有必要,但如果再次单击邀请按钮,他将找到新的 50 个用户
  • @Lix 您能否详细解释一下“允许您的用户选择某些朋友来邀请,否则您将面临达到应用程序请求限制的风险。”这个限制是针对单个用户还是针对所有用户?
  • 如果每个用户都向他们的每个朋友发送邀请 - 除非他们中有很多人接受邀请,否则将对您的应用程序实施限制。现在,您的应用程序每天可以向每个用户发送的请求有一定的限制。您盲目发送的邀请越多,您从用户那里获得负面反馈的风险就越大(这意味着拒绝请求或阻止您的应用程序)
  • 好的@Lix 非常感谢你 :) 你真好 :)

标签: php facebook facebook-graph-api


【解决方案1】:

您可以按以下方式执行此操作: 首先,当您发送请求时,您将 50 个朋友 id 设置为参数并将剩余的朋友 id 存储在 cookie 中,然后它会重定向到您的网站 url,您可以在其中重复上述步骤。即发送 50 个好友请求并将剩余的存储在 cookie 中。

var to="";
    for(var j=0 ; j< 50 && j<friends.length ; j++){
        if(friends[j].checked == true){
            to += friends[j].value;
            if(j != friends.length-1 && j != 49){
                to += ',';
            }
        }
    }
    var redirect_uri=your_site_url+"?button=inviteresponse";
    var callbackto="";
    for(var i=j;i<friends.length;i++){
        callbackto += friends[i].value;
        if(i != friends.length-1){
            callbackto += ',';
        }
    }
    document.cookie = "param="+callbackto+";path=/";
    var url="https://www.facebook.com/dialog/apprequests?app_id="+app_id+"&to="+to+"&message=Checkout apps&redirect_uri="+redirect_uri;
    window.open(url,'', 'width=900,height=500,resizable=yes,scrollbars=yes');  

case "inviteresponse":
        if (empty($_COOKIE['param'])) {
            unset($_COOKIE['param']);
            echo "<script type='text/javascript'>window.close();</script>";
            die();
        } else {
            $friends = explode(",", $_COOKIE["param"]);
            $to = "";
            for ($j = 0; $j < 50 && $j < count($friends); $j++) {
                $to .= $friends[$j];
                if ($j != count($friends) - 1 && $j != 49) {
                    $to .= ",";
                }
            }
            $redirect_uri = your_site_url+"?button=inviteresponse";
            $callbackto = "";
            for ($i = $j; $i < count($friends); $i++) {
                $callbackto .= $friends[$i];
                if ($i != count($friends) - 1) {
                    $callbackto .= ",";
                }
            }
            unset($_COOKIE['param']);
            setcookie("param", $callbackto);
            $url = "https://www.facebook.com/dialog/apprequests?app_id=" . APP_ID . "&to=" . $to . "&message=Checkout apps&redirect_uri=" . $redirect_uri;
            header("Location: " . $url);
        }

【讨论】:

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