I'm trying to convert friend pages into fan pages (most businesses have created friend pages by mistake) and am trying to email everyone on a friend list about the move.
I've tried
- FQL "SELECT email FROM user WHERE uid=xxxx"
- Creating groups (not good for 5000 friend pages)
- Restfb: Connection myFriends = facebookClient.fetchConnection("me/friends", User.class) etc;
The FQL and RestFB methods are both returning nada, group email method is just plain messy.
Is this a security feature or can this data ever by returned for my purpose?
Cheers
to access user's private informations like email,posts etc you should have the permission to access those details .for more details visit https://developers.facebook.com/docs/reference/api/permissions/
If you are using restfb (Facebook graph API and old REST API client wriiten in Java), and you want to access all friend list after Oauth authentication, you can use following method to access the 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);
}
Facebook does not provide user, unless the user authorizes your application to access it. It's on account of security and user privacy, imagine how terrible it would be if everybody could have at her disposal all FB user's email addresses.
Connection<User> myFriends = facebookClient.fetchConnection("me/friends", User.class ,Parameter.with("fields", "id, name, picture, email"));
You can specify any of the properties listed under http://developers.facebook.com/docs/reference/api/user
The only thing is that FB does not seam to return the friends email.. I'm using restFb 1.5.3
来源:https://stackoverflow.com/questions/2836866/facebook-emails-always-return-null-through-fql-and-restfb