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

3

我希望使用Facebook Android SDK发送好友请求。我目前正在使用这段代码(我从这里获取):

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个回答

4
应该是这样的:
Bundle parameters = new Bundle();
parameters.putString("id", USER_ID);
facebook.dialog(this, "friends", parameters, this);

如果this是实现了DialogListener的活动。

正如文档中所说:

app_id - 您的应用程序标识符。大多数SDK自动指定,但必须提供。
id - 必须提供。要添加为好友的目标用户的ID或用户名。


"id"是参数的名称,而USER_ID是您在运行时实际拥有的值,应该放在那里。 - Nitzan Tomer

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列表,而不是数组或列表。我在文档中没有找到这一点,但我发现它确实起作用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接