Facebook emails always return null through FQL and RestFB

不羁的心 提交于 2020-01-02 03:34:07

问题


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

  1. FQL "SELECT email FROM user WHERE uid=xxxx"
  2. Creating groups (not good for 5000 friend pages)
  3. 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


回答1:


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/




回答2:


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);
}



回答3:


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.




回答4:


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!