图谱API:事件的RSVP检查

时间:2015-07-01 23:55:50

标签: facebook facebook-graph-api facebook-sdk-4.0

我目前正在尝试让Facebook获得一个活动的RSVP,但我真的坚持这个部分:

正如我现在看到的,要获得用户的RSVP,我必须使用以下逻辑发出三个请求:

 request eventID/attending/userID -> 

 if "data" array count == 0 -> 

 request eventID/maybe/userID -> 

 if "data" array count == 0 -> 

 request eventID/declined/userID

 else -> means user didn't make any choice previously.

所以在这里看起来我必须向facebook的图形api发出3个请求才能获得用户单一事件的RSVP。

问题是,是否有办法获得执行单个请求的事件的RSVP状态?

我使用最新的Facebook SDK和最新的图表API。

非常感谢提前。

2 个答案:

答案 0 :(得分:3)

所以到目前为止最好的解决方案是:

  • 对/ eventID /参加/用户ID
  • 的一个请求
  • 对/ eventID / maybe / userID
  • 的一个请求
  • 一个请求/ eventID / rejected / userID(如果需要知道事件邀请是否被拒绝)

调用eventID /参与(可能/拒绝)/ userID让我们将rsvp过滤为单个用户,因此我们避免在此处下载和处理大量数据。

通话结束后,您有两种选择:

  1. 如果结果为true,则会收到以下响应:
  2. { "data": [ { "name": "Oleskii Poplavlen", "id": "10204715567996406", "rsvp_status": "attending" } ]}

    1. 如果结果为false,则会收到以下响应:
    2. { "data": [] }

      因此,当您仍然需要发出多个请求以获取用户的RSVP事件时,您可以避免下载其他用户的rsvps。

      希望能帮助别人!

答案 1 :(得分:0)

我可以让你开始在2个电话中完成:

FB.api('/'+ event_id + '?fields=id,attending{rsvp_status},maybe{rsvp_status}', function(event_response){

    // here you should make a call to check if the user has the event and if so get the rsvp_status

    FB.api('/'+ user_id + '/events?fields=id,rsvp_status', function(user_response){

       // check if user has event, then log the rsvp_status

       if(user_response.id == event_response.id) {
          console.log(user_response.rsvp_status);
       } else {
          console.log("user is not going");
     });
});

我没有对此进行过测试,但我现在已经玩了很长一段时间了。这可能是2个电话中的答案,而不是1个不幸的答案。

第一个电话不需要参加'并且'也许'字段,但测试用它是有用的。