2010-05-14 14 views
6

Sto provando a convertire le pagine di amici in pagine fan (la maggior parte delle aziende ha creato pagine di amici per errore) e sto provando a mandare email a tutti su una lista di amici sulla mossa.Le e-mail di Facebook restituiscono sempre null tramite FQL e RestFB

Ho provato

  1. FQL "SELECT-mail da utente in cui uid = xxxx"
  2. creazione di gruppi (non buono per le pagine 5000 amici)
  3. Restfb: MyFriends Connection = facebookClient.fetchConnection ("me/friends", User.class) ecc;

I metodi FQL e RestFB restituiscono entrambi, il metodo di posta elettronica di gruppo è semplicemente disordinato.

Si tratta di una funzione di sicurezza o è possibile che questi dati vengano restituiti per il mio scopo?

Acclamazioni

+0

domanda Pazzo, ma fare ognuno di questi profili esplicitamente dare applicazioni di accedere alla posta elettronica indirizzo? Le nuove politiche di Facebook costringono gli "amici" a scegliere di dare accesso alle applicazioni ai loro indirizzi email. –

risposta

0

Facebook non fornisce all'utente, a meno che l'utente autorizza l'applicazione per accedervi. È a causa della sicurezza e della privacy dell'utente, immagina quanto sarebbe terribile se tutti potessero avere a disposizione tutti gli indirizzi email dell'utente FB.

+0

Ma visto che sono amici "accettati" da entrambe le parti, posso vedere i loro indirizzi e-mail attraverso il sito. Sembra strano che io possa farlo manualmente ma non attraverso l'api. – mabeloo52

+0

dai un'occhiata a questo http://wiki.developers.facebook.com/index.php/Proxied_Email – falomir

+0

grazie ma penso che si riferisca alle applicazioni. Sto solo usando un token di accesso generato dal mio profilo. Posso restituire una lista di amici e i loro ID unici, il problema è che tutto il resto è vuoto. Esempio: Utente [about = compleanno null = null education = [] email = null firstName = null id = 12345678 interestedIn = [] lastName = null link = null metadata = null name = Tom Jones immagine = null relationshipStatus = null religion = null timezone = null tipo = null updatedTime = null verificato = null website = null work = []] – mabeloo52

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

È possibile specificare qualsiasi delle caratteristiche elencate sotto http://developers.facebook.com/docs/reference/api/user

L'unica cosa è che FB non cucitura di restituire l'e-mail amici .. Sto utilizzando restFb 1.5.3

+1

Sì, sembra che l'email non sia disponibile tramite l'API. Questo è un po 'strano dal momento che alcune aziende stanno raschiando il sito per ottenere i dati ancora andando su di esso il modo legale non funziona. – mabeloo52

1

Se si utilizza restfb (API grafico Facebook e vecchio client API REST wriiten in Java) e si desidera accedere a tutti gli elenchi di amici dopo l'autenticazione Oauth, è possibile utilizzare il seguente metodo per accedere a 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); 
} 
Problemi correlati