Facebook OpenGraph:如何在FB.api中指定过滤器?

Facebook OpenGraph:如何在FB.api中指定过滤器?,facebook,facebook-graph-api,facebook-opengraph,Facebook,Facebook Graph Api,Facebook Opengraph,我使用OpenGraph构建了一个Facebook应用程序,允许用户在音乐会上写评论,因此我定义了一个concert\u id属性,用户可以在该属性上插入评论 现在我想显示为某个音乐会id插入的所有评论,但找不到方法。如果我这样做(在JS中) 我买了所有的东西。该应用程序必须由手机使用,我认为获取所有项目,然后只过滤我需要的concert\u id是不好的。要将OpenGraph中的where条件应用于自定义操作,我必须做些什么?从API和Facebook开发者页面上可以看出,使用公共OpenG

我使用OpenGraph构建了一个Facebook应用程序,允许用户在音乐会上写评论,因此我定义了一个
concert\u id
属性,用户可以在该属性上插入评论

现在我想显示为某个
音乐会id插入的所有评论,但找不到方法。如果我这样做(在JS中)


我买了所有的东西。该应用程序必须由手机使用,我认为获取所有项目,然后只过滤我需要的
concert\u id
是不好的。要将OpenGraph中的
where
条件应用于自定义操作,我必须做些什么?

从API和Facebook开发者页面上可以看出,使用公共OpenGraph API无法按自定义操作属性筛选调用

我可以想到两个选择:

备选案文1:

通过创建自定义类别对象实现类别过滤器:

如果“审阅”是自定义操作,则

GET https://graph.facebook.com/me/[name_space]:review
然后返回所有审阅操作

GET https://graph.facebook.com/me/[name_space]:review/scifi_movie
GET https://graph.facebook.com/me/[name_space]:review/action_movie
返回特定于电影类型的动作,其中Scfi_电影和action_电影是自定义对象。您需要为每个类别创建一个对象类型

备选案文2:

为每个类别实施自定义操作,例如

review_scifi_movie
review_action_movie 

这些不是特别优雅的解决方案,但如果没有其他解决方案,并且您真的不想在客户端进行过滤,那么这些解决方案可能会非常有用。

我不懂javascript或opengraph


但是,当我要求用JAVA获取任何用户的评论时,我使用了,它检索了所有和FQL,它们也用于获取与Facebook相关的所有表。

Facebook API不会为特定操作返回单个发布的对象,但这不是您唯一的问题。从表面上看,你是想把音乐会的所有评论都带进来,对吧?(也指其他用户使用的)

Facebook API调用的“/me/”部分将只返回当前登录的用户发布的操作。这对你来说是行不通的,因为你想让你所有的用户都这么做


我能给出的唯一建议是创建一个简单的web服务,在其中存储各种音乐会的所有评论。使用此服务获取特定音乐会的评论。(我在自己的应用程序中使用类似的方法进行评论)。

我认为JSSDK无法实现这一点

不过你可以在你的服务器上这样做,因为这是一个移动应用程序(或者有一个移动版本),所以这是另一个将其从客户端责任中删除的好理由

在服务器端,您可以在发布时向facebook询问已发布的操作,过滤它们,然后返回响应。 您可以做的另一件事是将每个已发布的操作保存在db中(在每个操作帖子上,您应该从facebook获得一个id,只要保持该id),然后您可以根据您想要/需要的标准轻松筛选已发布的操作(因为您不再受facebook api的限制)

开放图形的东西仍然是非常新的,还不成熟,例如,您不能将FQL与它一起使用,这对于您的案例来说可能很方便。
尽管我认为服务器解决方案最适合移动计算。

我不知道具体情况,但试试这个

if(session.authResponse){

//这里是响应值
});

您好,谢谢您的回答,但我如何处理呼叫获取?[name_space]是指您在Facebook上创建应用程序时指定的名称空间。因此,您的调用将是FB.api('me/mynamespace:review/scfi_movie',function(response)等…好的,但是put/scfi_movie不应用过滤器。我的应用程序允许根据音乐会id在音乐会上插入评论;音乐会id是一个自定义属性,但如果我调用graph.facebook.com/me/[ns]:review/XY不起作用。正如您在选项2中所写,我可以为每个项目实施自定义操作,但它们超过1000,无法应用:-(根据您最初的问题,我了解您希望按类别(“类别id”)筛选数据)。如果我正确理解您最后的评论,您希望检索单个实例的数据(“concert_id”)。我的回答仅与类别筛选相关,而不与检索单个实例相关。打开图形中的对象(“将操作链接到对象”)相当于类,而不是类实例。因此,如果您只有几个类别,则可以通过对象表示它们,例如摇滚音乐会、流行音乐会、古典音乐会等,并在该级别进行过滤。我相信我的答案已达到编辑限制,但我只想添加一个选项,作为另一个选项,您可以将动作id存储到avo的客户端id昂贵的调用。当您在开放图中创建操作实例时,它会返回操作实例id。将其与concert id一起存储为应用程序数据库中的字段。然后您可以使用这些id而不是查询FB。
review_scifi_movie
review_action_movie 
    FB.api('/me', {
     fields: 'name, picture' // here mention your fields
    },
    function(response) {
      if (!response.error) {