Facebook电子邮件总是通过FQL和RestFB返回null

时间:2010-05-14 19:07:21

标签: email facebook facebook-fql restfb

我正在尝试将好友页面转换为粉丝页面(大多数商家都错误地创建了好友页面),并且我正在尝试通过电子邮件向好友列表中的每个人发送有关移动的电子邮件。

我试过

  1. FQL“用户选择电子邮件WHERE uid = xxxx”
  2. 创建群组(不适合5000个朋友页面)
  3. Restfb:Connection myFriends = facebookClient.fetchConnection(“me / friends”,User.class)等;
  4. FQL和RestFB方法都返回nada,组电子邮件方法只是简单凌乱。

    这是一个安全功能还是可以为我的目的返回这些数据?

    干杯

4 个答案:

答案 0 :(得分:2)

要访问用户的私人信息,如电子邮件,帖子等,您应该有权访问这些详细信息。有关详细信息,请访问https://developers.facebook.com/docs/reference/api/permissions/

答案 1 :(得分:1)

如果您使用restfb(Facebook图形API和Java中的旧REST API客户端wriiten),并且您希望在Oauth身份验证后访问所有好友列表,则可以使用以下方法访问{{3} },

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

答案 2 :(得分:0)

Facebook不提供用户,除非用户授权您的应用程序访问它。这是出于安全性和用户隐私的考虑,想象一下,如果每个人都能拥有所有FB用户的电子邮件地址,那将是多么可怕。

答案 3 :(得分:0)

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

您可以指定下面列出的任何属性 http://developers.facebook.com/docs/reference/api/user

唯一的事就是FB没有接缝来回复朋友的电子邮件.. 我正在使用restFb 1.5.3