" Request.newMeRequest"之间有什么区别?和"新的http请求("

时间:2014-05-09 13:26:21

标签: java android facebook facebook-graph-api facebook-fql

我想从我的Android应用程序中获取一些FB数据。

我看到有两种方法可以做到这一点:

A)

new Request(session,"/me/interests", null, HttpMethod.GET,
                new Request.Callback() {
                    public void onCompleted(Response response) {
                        /* handle the result */
                    }
                }
            ).executeAsync();

B)

Request.newMeRequest(session, new Request.GraphUserCallback() {
            @Override
            public void onCompleted(GraphUser user, Response response) {

是其中一个被弃用了吗?

我如何在第二个签名中询问特定节点\ edge(例如“/ me / interests”)?

只要我要求适当的权限,它是否为我提供了所有已准备好的节点?

2 个答案:

答案 0 :(得分:1)

1)正如文档(https://developers.facebook.com/docs/reference/android/current/class/Request/)中所指定的那样,它们都不被弃用。

2)您无法要求特定节点/边缘,因为它已配置为检索用户个人资料。

3)您获得GraphUserResponse作为回报(在onComplete中)。

最有可能的是,newMeRequest会在内部调用new Request

答案 1 :(得分:0)

Request.newMeRequest只是新请求(session,“/ me”)的包装器。这是一种方便的方法。

如果你想要其他任何东西,你需要自己构建它,可能使用newGraphPathRequest方法 - https://developers.facebook.com/docs/reference/android/current/class/Request/#newGraphPathRequest

因此,对于上面的“我/兴趣”示例,您可以执行以下操作:

Request.newGraphPathRequest(session, "me/interests", new Request.Callback() {...})
  .executeAsync();