Как отправить запрос приложения всем друзьям, используя диалог запроса Facebook?

Я могу отправить запрос приложения в диалоговом окне запроса 50 друзьям пользователя с to= изменение поля, но я хочу отправлять запросы всем друзьям пользователя, как это делает это приложение: кнопка "Пригласить друга" для страниц

Это приложение приглашает пользователей первых 50 друзей, а затем снова приглашает пользователей следующих 50 друзей и так далее

В моем коде я пересылаю пользователей на этот URL с помощью PHP

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 для диалога запроса

Как мне продолжить отсюда?

1 ответ

Решение

Вы можете сделать это следующим образом: сначала вы устанавливаете 50 идентификаторов друзей в параметре и сохраняете идентификаторы оставшихся друзей в 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);
        }
Другие вопросы по тегам