Как отправить запрос на добавление в друзья с помощью диалогов Facebook на Android?

Я хочу отправить запрос на добавление в друзья с помощью Facebook Android SDK. В настоящее время я использую этот код (который я получил из здесь) :

Bundle parameters = new Bundle();
parameters.putString("APP_ID","USERNAME");
facebook.dialog(this, "friends", parameters, this);

где APP_ID — это идентификатор Facebook моего приложения, а USERNAME — это имя пользователя друга, которого я хочу добавить. Это приводит к следующей ошибке:

API Error Code:100
Invalid parameter
The parameter id is required

Я думал, что параметр id означает APP_ID.

Я просмотрел соответствующую документацию, касающуюся диалогов, на странице http://developers.facebook.com/docs/reference/dialogs/friends/ и http://developers.facebook.com/docs/reference/androidsdk/dialog/, но до сих пор не могу понять.

Любая помощь приветствуется.


person ask    schedule 24.06.2012    source источник


Ответы (2)


Должно быть что-то вроде:

Bundle parameters = new Bundle();
parameters.putString("id", USER_ID);
facebook.dialog(this, "friends", parameters, this);

В случае, если this является действием, которое также реализует DialogListener.

Как говорится в документации:

app_id – идентификатор вашего приложения. Требуется, но автоматически указывается большинством SDK.
id — обязательно. Идентификатор или имя пользователя целевого пользователя, которого нужно добавить в друзья.

person Nitzan Tomer    schedule 24.06.2012
comment
"id" — это имя параметра, а USER_ID — это фактическое значение, которое у вас есть во время выполнения, которое вы должны туда поместить. - person Nitzan Tomer; 24.06.2012

Ты можешь использовать:

WebDialog.RequestsDialogBuilder requestBuilder = (new WebDialog.RequestsDialogBuilder(this,
                Session.getActiveSession(), params)).setOnCompleteListener(
                new OnCompleteListener() {

                    @Override
                    public void onComplete(Bundle values,
                            FacebookException error) {
                        if (error != null) {

                        } else {
                            final String requestId = values
                                    .getString("request");
                            if (requestId != null) {
                                //if the user completed the action,
                            } else {

                            }
                        }
                    }

                });
        WebDialog requests = requestBuilder.build();
        requests.show();

Если вы хотите настроить запрос на предварительно выбранных друзей, просто добавьте в requestBuilder следующее:

requestBuilder.setTo("FRIEND_ID, ANOTHER_FRIEND_ID"), перед построением диалога.

Странно то, что он принимает список друзей как составной список идентификаторов, а не массив или список. Я не нашел в документах, но только что обнаружил, что это работает

person martar    schedule 12.03.2013