2012-01-20 53 views

回答

0

这个工作对我来说:

FacebookClient facebookClient = new DefaultFacebookClient(MY_ACCESS_TOKEN); 
User user = facebookClient.fetchObject("me", User.class); 
out.println("Last name: " + user.getLastName()); 
+0

是的,如果用户是我的话,这是行得通的......但是如果我想抓住朋友列表中的用户的详细信息,比如位置,我想我们必须改变访问级别。我目前停留在更改访问令牌。虽然我改变了一次,但我不知道这是否是问题或其他问题。我们如何更改访问令牌的权限?... – sandeepsharat

+0

这是一个与原先要求的不同的问题。在一个问题之后问题问后提出问题是不公平的。 – DMCS

0

这里是代码片段

FacebookClient facebookClient = new DefaultFacebookClient("register a facebook application with required permissions, get that application token and paste here"); 

User user = facebookClient.fetchObject("me", User.class); 

Connection<User> myFriends = facebookClient.fetchConnection("me/friends", User.class); 

for(User friend:myFriends.getData()) 
{ 
    Connection<Page> myMovies = facebookClient.fetchConnection(friend.getId() + "/movies", Page.class); 

    content = content + "Name: " + friend.getName(); 
    for(Page page:myMovies.getData()) 
    { 
     content = content + "\n" + "Movies: " + page.getName() + "\n"; 
    } 
} 

在这个例子中您的应用需求 “friends_likes” 权限。

希望这会有所帮助。

2

当您提供的访问令牌没有访问数据的正确权限时,会发生这种情况。最好的方法来检查这是通过使用Facebook图形API接口;注意版本。 https://developers.facebook.com/tools/explorer/145634995501895/?method=GET&path=me&version=v2.4

FacebookClient fbClient = new DefaultFacebookClient(accessToken, Version.VERSION_2_4); 
User me = fbClient.fetchObject("me", User.class, Parameter.with("fields", "email,first_name,last_name,gender")); 

注意:您FB.login函数必须包含正确的范围为你要访问的字段。

FB.login(function(response) { 

      ... 

     }, {scope: 'email'}); 
相关问题