Facebook - Melhor maneira de fazer o FQL “participe” com o evento e o evento?

StackOverflow https://stackoverflow.com/questions/1045842

  •  20-08-2019
  •  | 
  •  

Pergunta

Em um aplicativo do Facebook, preciso obter os eventos de um usuário para um intervalo e seu status de RSVP para cada evento.

Eu posso obter bem os eventos do usuário, mas no momento estou procurando o status do RSVP para cada evento, um de cada vez, e o aplicativo está divulgando pessoas com um grande número de eventos.

Estou recebendo os eventos do usuário desta maneira:

$fql = "SELECT eid, name, start_time, end_time 
        FROM event 
        WHERE eid IN (SELECT eid 
                      FROM event_member 
                      WHERE uid = $user) 
          AND start_time > '$timestamp' 
        ORDER BY start_time";

Esta parte está funcionando bem.

E eis como estou recebendo o status do RSVP para cada evento, um de cada vez:

$fql = "SELECT rsvp_status 
        FROM event_member 
        WHERE uid = $user
          AND eid = '$event_id'";

Isso também funciona bem em uma base de eventos a eventos, mas a página do aplicativo se destaca quando o usuário tem muitos eventos, já que cada evento está tendo que ser procurado a cada vez.

Com o SQL normal, eu poderia facilmente fazer isso com uma junção, mas as junções não são permitidas no FQL.

Uma solução possível é fazê -los em lotes, atravessando cada possibilidade de RSVP_STATUS, como esta:

$fql = "SELECT eid, name, start_time, end_time 
        FROM event 
        WHERE eid IN (SELECT eid 
           FROM event_member 
           WHERE uid = $user 
           and rsvp_status = 'attending') 
        AND start_time > '$timestamp' 
        ORDER BY start_time";

Isso reduziria o número de chamadas FQL para o número de RSVP_Possibilidades (três, acho), mas, idealmente, prefiro fazê -lo em uma chamada FQL.

Foi útil?

Solução

Não há uma maneira de fazer uma junção, mas você pode usar FQL.Multiquey Para lotar suas 4 consultas em uma única chamada. As 4 consultas seriam 1 cada para o 4 possíveis respostas de eventos: presença, insegura, recusou e não_replied.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top