Вопрос по ios, facebook, iphone – Получение всех моих событий через Facebook iOS SDK

14

В моем iOS-приложении я получаю токен доступа, используя следующий код:

    [self.facebook authorize:[NSArray arrayWithObjects:@"user_events",
@"friends_events",  nil]];

Затем я запрашиваю свои события с помощью следующего кода:

[self.facebook requestWithGraphPath:@"me/events" andDelegate:friendsVC];

Но в ответ я получаю только те события, к которым у меня есть RSVP. Я хотел бы получить все свои события, включая те, к которым у меня нет RSVP.

Есть идеи?

Ваш Ответ

5   ответов
6

/me/events

только дает вам события, которые пользователь (возможно) планирует посетить. Ответ не включает в себя события, на которые пользователь был приглашен (но не ответил) или отклонен.

Есть другие запросы, которые могут быть полезны:

Вы можете проверить, был ли пользователь приглашен на событие, например так:

/EVENT_ID/invited/USER_ID

Статус RSVP можно проверить по событию:

/EVENT_ID/attending

/EVENT_ID/maybe

/EVENT_ID/declined

/EVENT_ID/invited

где каждый запрос возвращает список пользователей с запрашиваемым статусом RSVP.

берегисьevents соединениеdefaulting to the past two weeks (использованиеsince/until параметры для указания желаемого временного диапазона).
На самом деле, на события, на которые я ответил «Возможно» включены в ответ наme/events запрос. sentinel
0

Это не полное решение, и это может не сработать, но посмотрите, можно ли получить доступ к каналу iCal пользовательских событий Facebook. Я подписываюсь на свой канал iCal и заметил, что все события, даже новые, которые мне еще предстоит отправить в RSVP, включены в канал.

В любом случае, попробовать!

0

использование/me/events для получения событий, на которые ответил пользователь, и/me/events/not_replied для остальных.

Например (при условии, что вы создали сеанс):

[FBRequestConnection startWithGraphPath:@"/me/events/not_replied" completionHandler:^(FBRequestConnection *connection, id result, NSError *error)
{
    FBGraphObject* data = (FBGraphObject*)result;
    NSMutableArray* array = [data objectForKey:@"data"];

    //parse data etc..
}];

Увидетьhttps://developers.facebook.com/docs/graph-api/reference/v2.0/user/events/ для получения дополнительной информации.

0

Я думаю, что вы можете получитьСобытия по запросу FQL. Вы должны попробовать это.

Также посмотрите этоHow-To: Используйте Graph API для управления событиями.

Вам понадобится HTTP Получить следующее из Graph API:

fql?q=SELECT uid,eid,rsvp_status FROM event_member WHERE uid = me()

Вы можете вернуть все статусы с этого вызова.

{
  "data": [
    {
      "uid": "723020003",
      "eid": "19935786340002",
      "rsvp_status": "not_replied"
    },
    {
      "uid": "723020003",
      "eid": "234524000290351",
      "rsvp_status": "attending"
    },
    {
      "uid": "723020003",
      "eid": "210091000081240",
      "rsvp_status": "declined"
    },
    {
      "uid": "723020003",
      "eid": "210091000341240",
      "rsvp_status": "unsure"
    }
  ]
}
2

Вы можете получить список событий независимо от их статуса RSVP с помощью следующего запроса FQL:

SELECT eid, name, venue, location, start_time FROM event WHERE eid IN (
  SELECT eid from event_member WHERE uid = me()
)

Это не вернет статус RSVP для каждого события, а только детали события. Вы можете использоватьПакетные запросы чтобы получить как детали событий иrsvp_status с тем же запросом.

https://graph.facebook.com/?method=post&batch=[
  {
    "name":"rsvp",
    "relative_url":"fql?q=SELECT+eid,rsvp_status+FROM+event_member+WHERE+uid=me()",
    "omit_response_on_success":false
  },
  {
    "relative_url":"?ids={result=rsvp:$.data.*.eid}"
  }
]

Увидетьevent а такжеevent_member Таблица документации для деталей о других полях, которые вы можете получить.

Заметки:

Starting July 5th, an access token will be required to access even public events.

Похожие вопросы