如何在Android上使用Facebook对话框发送好友请求?

时间:2012-06-24 06:42:48

标签: android facebook request facebook-android-sdk friend

我想使用Facebook Android SDK发送好友请求。我目前正在使用此代码(我从here获得):

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

其中APP_ID是我的应用的Facebook ID,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/对话框的相关文档,但仍无法弄明白。

感谢任何帮助。

2 个答案:

答案 0 :(得分:4)

应该是这样的:

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

如果this是同时实施DialogListener的活动。

正如文档中所述:

  

app_id - 您的应用程序的标识符。必需,但自动   由大多数SDK指定    id - 必填。的ID或用户名   目标用户添加为朋友。

答案 1 :(得分:1)

您可以使用:

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"),在构建对话框之前。

奇怪的是它接受朋友列表作为id的连接列表,而不是数组或列表。我没有在文档中找到,但发现它有效