1

我试图通过在使用 FB SDK v3 的 android 应用程序中使用 Graph API 来发现用户是否喜欢特定的 facebook 页面。

以下调用起作用并报告用户的所有喜欢以及与每个结果项目有关的所有其他细节。

Request.executeGraphPathRequestAsync(session, "me/likes", new Request.Callback()

由于我对任何外围数据不感兴趣,我只想取回 id 以便查找我感兴趣的页面,但是当我添加如下参数时......

Request.executeGraphPathRequestAsync(session, "me/likes?fields=id", new Request.Callback()

...调用没有返回任何对象。如果我在 Graph API 资源管理器中发布相同的查询,它们会返回预期的结果。

除了这个问题之外,是否有可能将查询结果限制为仅以页面 ID 开头,因为我已经知道那条信息?我对返回的其余数据没有用处,并且不希望不必要地占用用户带宽。我搜索了高低,似乎不可能。正如示例所暗示的那样,在尝试同时通过用户和页面 ID 进行限制时,即使 FQL 资源管理器也不起作用。将“AND page_id=xxx”添加到查询时,我得到一个空的结果集。

4

2 回答 2

6

据我所知,您无法使用“executeGraphPathRequestAsync”中的字段运行查询。而是使用“Request”并使用“RequestAsyncTask”运行。简短的例子:

        String grapPath = "me/home";

        Bundle params = new Bundle();
        params.putString("fields", "type,id,object_id,created_time,from,picture,likes");
        params.putString("limit", "500");

        Request request = new Request(session, grapPath, params, HttpMethod.GET, new Callback()
        {

            @Override
            public void onCompleted(Response response)
            {
                if (response != null)
                {
                    Log.d(TAG_NAME, "response: " + response.toString());
                }

            }
        });

        RequestAsyncTask task = new RequestAsyncTask(request);
        task.execute();

希望我能帮助你:)

于 2013-04-29T08:44:45.560 回答
-1

Facebook SDK 会将“?access_token”添加到图形路径字符串的末尾。所以图形命令最终看起来像:

me/likes?fields=id?access_token

将字段分解为参数包。

在 Facebook 错误帖子中发现此问题已解决:http: //developers.facebook.com/bugs/314504765319932 ?browse=search_5116b87d245900257505334

于 2013-02-21T00:01:33.440 回答