Подтвердить что ты не робот

Отправить запрос приложения всем друзьям в Facebook с помощью диалогового окна "Запросы" на Android

Я хочу знать, как отправить запрос приложения всем моим друзьям из Facebook из приложения Android. Я пробовал в графическом API. Но, не получилось.

https://graph.facebook.com/apprequests?ids=friend1,friend2&message='Hi'&method=post&access_token=ACCESS_TOKEN

Я знаю, что это Дублирующий вопрос. Но пока не нашел ответа. Я получаю эту ошибку над вышеуказанным API.

"All users in param ids must have accepted TOS."

Я надеюсь, что есть способ отправить запрос приложения всем друзьям с мобильных устройств одним нажатием. Пожалуйста, поделитесь им.

4b9b3361

Ответ 1

Полученное сообщение об ошибке ( "Все пользователи в параметрах должны принимать TOS" ) - это потому, что вы пытаетесь отправить сгенерированный приложением запрос к пользователю, который не подключен к вашему приложению.

Смотрите документы разработчика.

Запросы, отправленные с диалоговым окном запроса, и приложения сгенерированные запросы разные, и вы не можете использовать приложения сгенерированные запросы, чтобы приглашать пользователей в ваше приложение.

Отправка запросов приложений Facebook недоступна через график api. Вы можете использовать приложение для запроса java- script диалогового окна, чтобы отправить запрос, но вам просто нужно указать идентификатор пользователя в поле "на" имущество, как указано в документации.

Пример функции:

<script>
  FB.init({ appId: '**appId**', status: true, cookie: true, xfbml : true });

  function sendRequest(to) {
    FB.ui({method: 'apprequests', to: to, message: 'You should learn more about this awesome site.', data: 'tracking information for the user'});
    return false;
  }
</script>

Затем просто подключите onclick для каждого изображения к чему-то вроде onclick="return sendRequest('**friendId**');"

Также вы можете вызвать эту функцию в javascript: это даст вам всех друзей с фотографиями. Также группа друзей, которые в настоящее время используют одно и то же приложение. Вы можете отправить запрос любому из них.

function sendRequestViaMultiFriendSelector() {
    FB.ui({
        method: 'apprequests',
        message: "You should learn more about this awesome site."
    });     
}

См. Запрос друга Facebook - Ошибка - "Все пользователи в параметрах должны принять TOS"

Ответ 2

Вы видели демо-версию "Hackbook" на сайте developer.facebook.com?

Вы можете сослаться ЗАПРОС HACKBOOK APP ИЗ ЗДЕСЬ.

вы можете достичь, чтобы отправить запрос приложения своим ТОЛЬКО ОДИН друзьям по нижеприведенному коду.

код:

Bundle params = new Bundle();

            JSONObject attachment = new JSONObject();
            JSONObject properties = new JSONObject();
            JSONObject prop1 = new JSONObject();
            JSONObject prop2 = new JSONObject();
            JSONObject media = new JSONObject();
            JSONStringer actions = null;
            try {
                attachment.put("name", "YOUR_APP");
                attachment.put("href", "http://www.google.com/");
                attachment.put("description", "ANY_TEXT");
                media.put("type", "image");
                media.put("src", "IMAGE_LINK");
                media.put("href", "http://www.google.com/");
                attachment.put("media", new JSONArray().put(media));
                prop1.put("text", "www.google.com");
                prop1.put("href", "http://www.google.com");
                properties.put("Visit our website to download the app", prop1);
               /* prop2.put("href", "http://www.google.com");
                properties.put("iTunes Link      ", prop2);*/
                attachment.put("properties", properties);
                Log.d("FACEBOOK", attachment.toString());

                actions = new JSONStringer().object()
                            .key("name").value("APP_NAME")
                            .key("link").value("http://www.google.com/").endObject();

            } catch (JSONException e) {
                e.printStackTrace();
            }

            System.out.println("ACTIONS STRING: "+actions.toString());
            System.out.println("ATTACHMENT STRING: "+attachment.toString());

            params.putString("actions", actions.toString());
            params.putString("attachment", attachment.toString()); // Original
            params.putString("to", "YOUR_FRIEND_FACEBOOK_ID");
            Utility.mFacebook.dialog(getParent(), "stream.publish", params,new PostDialogListener());



 public class PostDialogListener extends BaseDialogListener {
    @Override
    public void onComplete(Bundle values) {
        final String postId = values.getString("post_id");
        if (postId != null) {
            Toast.makeText(getApplicationContext(), ""+getResources().getString(R.string.facebook_response_msg_posted), Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(getApplicationContext(), ""+getResources().getString(R.string.facebook_response_msg_not_posted), Toast.LENGTH_SHORT).show();
        }
    }
}

Выше код работает идеально, если вы хотите опубликовать Apprequest только на одной стене друга. Если вы хотите опубликовать на всех, вам нужно сделать asynckTask, который запускается для всех друзей и отправляет заявку на все стены.

Надеюсь, вы поняли.

Обновление

Вот ссылка в php, которая сделала такую ​​же работу для отправки запроса всем друзьям из Facebook. ссылка: ЗДЕСЬ

И здесь понятно, что блок facebook отправляет Friend Request более чем 15-20 друзьям. Ссылка: ЗДЕСЬ

Теперь вам нужно только один вариант: используйте вышеприведенный код в AsyncTask для отправки Friend Request всем друзьям One-by-One.

Надеюсь, тебе лучше понять сейчас.

Пожалуйста, прокомментируйте, чего вы достигли до сих пор.

Спасибо.