Отправьте запрос приложения всем друзьям в 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."

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


comment
у вас есть фото или образец, какой тип запроса приложения вы хотите опубликовать на стене друга.   -  person Shreyash Mahajan    schedule 21.01.2013


Ответы (2)


Сообщение об ошибке, которое вы получаете («Все пользователи в идентификаторах параметров должны принять TOS»), связано с тем, что вы пытаетесь отправить сгенерированный приложением запрос пользователю, который не подключен к вашему приложению.

См. документацию для разработчиков здесь.

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

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

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

<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="return sendRequest('**friendId**');"

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

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

См. Facebook Friend Request - Error - "Все пользователи в params id должны принять TOS"

person Somnath Muluk    schedule 21.01.2013
comment
Я хочу отправить его из приложения. - person Gugan; 21.01.2013
comment
Затем вы можете отправить его только тем пользователям, которые установили ваше приложение. - person Igy; 24.01.2013

Вы видели демо «Hackbook» на сайте developer.facebook.com?

Вы можете отправить ЗАПРОС ПРИЛОЖЕНИЯ HACKBOOK ЗДЕСЬ.

Вы можете отправить запрос приложения только одному другу с помощью приведенного ниже кода.

Код:

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.

И [здесь ясно объяснено3, что Facebook блокирует отправку запроса на добавление в друзья более чем 15-20 друзьям.

Теперь у вас есть только один вариант сделать это: использовать приведенный выше код в AsyncTask, чтобы отправить запрос на добавление в друзья всем друзьям один за другим.

person Shreyash Mahajan    schedule 21.01.2013
comment
Он будет публиковать на стене друзей о приложении. - person Gugan; 21.01.2013
comment
Запрос приложения не должен идти на стену, он должен идти в уведомление пользователя или список запросов приложения. - person Gugan; 21.01.2013
comment
Это будет в уведомлении. - person Shreyash Mahajan; 21.01.2013
comment
@Gunjan: Это будет сообщение, которое приложение DrawSomething имеет для друга пользователя на Facebook. - person Shreyash Mahajan; 21.01.2013
comment
пожалуйста, также проверьте ссылку HACKBOOK APP REQUEST из моего только что обновленного ответа. - person Shreyash Mahajan; 21.01.2013
comment
давайте продолжим обсуждение в чате - person Gugan; 21.01.2013
comment
@Gugan: Вы должны хотя бы взглянуть на мой ответ и на то, что я говорю. У меня есть одно готовое приложение для Android, в котором пользователь может отправить тот же запрос приложения своему другу в Facebook. - person Shreyash Mahajan; 21.01.2013
comment
@Gugan: см. мой обновленный ответ. - person Shreyash Mahajan; 22.01.2013
comment
А также мне нужно снова и снова нажимать кнопку «Поделиться», чтобы опубликовать это для всех моих друзей. Это не подойдет моему приложению. - person Gugan; 22.01.2013
comment
@Gugan: Вы можете избежать просмотра кнопки «Поделиться», если хотите. Для этого нужно изучить код. В любом случае Всего наилучшего. - person Shreyash Mahajan; 22.01.2013