2010-05-14 11 views
6

Estoy tratando de convertir páginas de amigos en páginas de fans (la mayoría de las empresas han creado páginas de amigos por error) y estoy tratando de enviar correos electrónicos a todos los que están en la lista de amigos.Los correos electrónicos de Facebook siempre devuelven null a través de FQL y RestFB

He intentado

  1. FQL "SELECT correo electrónico de los usuarios, cuando uid = xxxx"
  2. Creación de grupos (no es bueno para las páginas 5000 amigo)
  3. Restfb: myfriends de conexión = facebookClient.fetchConnection ("me/friends", User.class) etc;

Los métodos FQL y RestFB están volviendo a nada, el método de correo electrónico grupal es simplemente desordenado.

¿Es esta una característica de seguridad o se puede devolver esta información para mi propósito?

Saludos

+0

pregunta loco, pero hacerlo cada uno de estos perfiles dar de forma explícita a las aplicaciones acceso al correo electrónico ¿dirección? Las nuevas políticas de Facebook obligan a los "amigos" a optar por dar acceso a las aplicaciones a sus direcciones de correo electrónico. –

Respuesta

0

Facebook no proporciona usuario, a menos que el usuario autoriza su aplicación para acceder a ella. Es a causa de la seguridad y la privacidad del usuario, imagine lo terrible que sería si todos pudieran tener a su disposición todas las direcciones de correo electrónico de los usuarios de FB.

+0

Pero como son amigos "aceptados" de ambos lados, puedo ver sus direcciones de correo electrónico a través del sitio. Parece extraño que pueda hacerlo manualmente pero no a través de la API. – mabeloo52

+0

eche un vistazo a este http://wiki.developers.facebook.com/index.php/Proxied_Email – falomir

+0

gracias, pero creo que eso se refiere a las aplicaciones. Solo estoy usando un token de acceso generado por mi perfil. Puedo devolver una lista de amigos y sus Ids únicos, el problema es que todo lo demás está en blanco. Ejemplo: Usuario [about = null birthday = null education = [] email = null firstName = null id = 12345678 interestedIn = [] lastName = null link = nulo metadata = null name = Tom Jones picture = null relationshipStatus = null religion = null timezone = null type = null updatedTime = null verified = null sitio web = null work = []] – mabeloo52

0
Connection<User> myFriends = facebookClient.fetchConnection("me/friends", User.class ,Parameter.with("fields", "id, name, picture, email")); 

Puede especificar cualquiera de las propiedades contempladas en http://developers.facebook.com/docs/reference/api/user

La única cosa es que FB no costura para devolver el correo electrónico amigos .. estoy usando restFb 1.5.3

+1

Sí, parece que el correo electrónico simplemente no está disponible a través de la API. Esto es un poco extraño ya que algunas compañías están robando el sitio para obtener los datos que aún están funcionando, la forma legal no funciona. – mabeloo52

1

Si está usando restfb (API de gráficos de Facebook y antiguo API REST escrito en Java), y desea acceder a todas las listas de amigos después de la autenticación Oauth, puede usar el siguiente método para acceder al friends list and facebook id's,

public List<ArrayList> findFacebookFriendsUsingRest(String facebookAccessToken){ 

    List<ArrayList> myFacebookFriendList= new ArrayList(); 
    final FacebookClient facebookClient; 
    facebookClient = new DefaultFacebookClient(facebookAccessToken); 
    User user = facebookClient.fetchObject("me", User.class); 
    String userName = user.getFirstName(); 

    if (userName == null){ 
     userName = user.getLastName(); 
    } 

    String userEmail = user.getEmail(); 
    com.restfb.Connection<User> myFriends = facebookClient.fetchConnection("me/friends", User.class); 

    System.out.println("Count of my friends: " + myFriends.getData().size()); 

    for(User friend: myFriends.getData()){ 
     System.out.println("Friends id and name: "+friend.getId()+" , "+friend.getName());  
     myFacebookFriendList.add(friend.getName()); 
    } 

    System.out.println("All Friends : "+myFacebookFriendList); 
} 
Cuestiones relacionadas