图 API:活动的 RSVP 检查

Graph API: event's RSVP check

我目前正在尝试获得 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 的图表发出 3 个请求 api 才能获得用户对单个事件的 RSVP。

问题是是否有任何方法可以为执行单个请求的事件获取 RSVP 状态?

我正在使用最新的 Facebook SDK 和最新的图表 api。

非常感谢。

我可以让你在 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");
     });
});

我还没有测试过这个,但我已经用这个 API 玩了很长时间了。不幸的是,这可能是在 2 个调用中而不是在 1 个调用中完成的答案。

第一次调用不需要 'attending' 和 'maybe' 字段,但它对测试很有用。

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

  • 一个请求 /eventID/attending/userID
  • 一个请求 /eventID/maybe/userID
  • 一个请求 /eventID/declined/userID(如果需要知道活动邀请是否被拒绝)

调用 eventID/attending(maybe/declined)/userID 可以让我们过滤 rsvp 到单个用户,因此我们避免在这里下载和处理大量数据。

通话后您有两种选择:

  1. 如果结果为真,您会收到以下响应:

{ "data": [ { "name": "Oleskii Poplavlen", "id": "10204715567996406", "rsvp_status": "attending" } ]}

  1. 如果结果为假,您会得到以下响应:

{ "data": [] }

因此,尽管您仍然需要发出多个请求来获取用户的 RSVP 到活动中,但您可以避免下载大量其他用户的 RSVP。

希望对某人有所帮助!