Verifique se um usuário do Facebook é membro de um grupo

EDITAR : Este protocolo usa FQL, que se tornou obsoleto na plataforma do Facebook v2.1 e superior, então não confie mais nele.

Você pode precisar usar o rubygem Koala para verificar se um usuário do Facebook é membro de um determinado grupo.

O seguinte snippet contém um método que recebe dois parâmetros:

  • um userobjeto que tem um acessador oauth_tokenque obtém o token de acesso do usuário e um uidacessador que obtém o uid do Facebook do usuário
  • e um gidque representa o id do grupo do Facebook.

O método verificará se o usuário tem a user_groupspermissão necessária (se não, você deve especificar o que fazer). Em seguida, ele executará um procedimento simples FQL Queryque eventualmente retornará se o usuário é realmente um membro ou não.

def is_group_member? user, gid
facebook
||= Koala::Facebook::API.new(user.oauth_token)
unless facebook.get_connections('me','permissions')[0]['user_groups']
# Do something you want, like throwing an exception or returning false
end
query_string
= "SELECT uid FROM group_member WHERE uid=#{user.uid} AND gid=#{gid}"
(facebook.fql_query(query_string).count > 0)? true: false
end