图 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 到单个用户,因此我们避免在这里下载和处理大量数据。
通话后您有两种选择:
- 如果结果为真,您会收到以下响应:
{
"data": [
{
"name": "Oleskii Poplavlen",
"id": "10204715567996406",
"rsvp_status": "attending"
}
]}
- 如果结果为假,您会得到以下响应:
{
"data": []
}
因此,尽管您仍然需要发出多个请求来获取用户的 RSVP 到活动中,但您可以避免下载大量其他用户的 RSVP。
希望对某人有所帮助!
我目前正在尝试获得 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 到单个用户,因此我们避免在这里下载和处理大量数据。
通话后您有两种选择:
- 如果结果为真,您会收到以下响应:
{
"data": [
{
"name": "Oleskii Poplavlen",
"id": "10204715567996406",
"rsvp_status": "attending"
}
]}
- 如果结果为假,您会得到以下响应:
{
"data": []
}
因此,尽管您仍然需要发出多个请求来获取用户的 RSVP 到活动中,但您可以避免下载大量其他用户的 RSVP。
希望对某人有所帮助!