Отправьте запрос приложения всем друзьям в 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."
Я надеюсь, что будет способ отправить запрос приложения всем друзьям с мобильного телефона одним щелчком мыши. Пожалуйста, поделитесь этим.
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."
});
}
Вы видели демо "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();
}
}
}
Приведенный выше код отлично работает, если вы хотите опубликовать App request только на стене Одного друга. Если вы хотите публиковать сообщения обо всех, то вам нужно создать asynckTask, который будет работать для всех друзей, публиковать и публиковать запросы приложений на всех стенах.
Надеюсь, вы поняли.
Обновить
Вот ссылка в php, которая проделала ту же работу, чтобы отправить запрос всем друзьям в Facebook. ссылка: ЗДЕСЬ
И здесь ясно объясняется, что Facebook блокирует отправку запроса на добавление в друзья более чем 15-20 друзьям. Ссылка: ЗДЕСЬ
Теперь у вас есть только одна возможность сделать это: использовать приведенный выше код в AsyncTask, чтобы отправить друг другу запрос на добавление в друзья.
Надеюсь, вы лучше поняли сейчас.
Прокомментируйте, пожалуйста, то, что вы достигли до сих пор
Благодарю.