2012-01-20 141 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'}); 
相關問題