2013-12-17 35 views
1

我正在使用社交身份驗證庫進行Facebook集成。我可以分享/發佈文字或圖片,但我想訪問我的朋友列表。如何在Android中使用社交身份驗證訪問Facebook好友列表?

是否有可能通過android中的社交身份驗證訪問好友列表?

在此先感謝...

+0

當您授權給Facebook時,您必須添加'read_friendlists'。然後請求'/我/ friendlists' – Gooziec

+0

感謝您的回覆@Gooziec,有沒有任何例子? – jagdish

+0

你使用sdk由facebook提供嗎?如果是這樣,那麼你可以查看他們的頁面https://developers.facebook.com/docs/graph-api/reference/user/friendlists – Gooziec

回答

2

我正在使用socialauth獲取Facebook上的朋友列表。他們有更多關於他們github page wiki的最新信息。下面的代碼是我對wiki中的例子的改編。我獲取名稱,個人資料圖片和Facebook ID。

在我的片段

public class Friends extends SherlockFragment { 
private static SocialAuthAdapter facebookAdapter; 

我設置適配器

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    facebookAdapter = new SocialAuthAdapter(new FacebookListener()); 

在onCreateView後,我授權用戶

facebookAdapter.authorize(getSherlockActivity(), Provider.FACEBOOK); 

現在我實現了第一個偵聽器(他們才授權)

private final class FacebookListener implements DialogListener 
    { 
     public void onComplete(Bundle values) { 

      Log.d("SocialAuth","Successful"); 
      facebookAdapter.getUserProfileAsync(new FacebookProfileDataListener()); 
      Toast.makeText(getSherlockActivity(),"Connection Successful",Toast.LENGTH_LONG).show(); 


     } 

     @Override 
     public void onError(SocialAuthError error) { 
      Log.d("Custom-UI" , "Error"); 
     } 

     public void onCancel() { 
      Log.d("Custom-UI" , "Cancelled"); 
     } 

     @Override 
     public void onBack() { 
      // TODO Auto-generated method stub 

     } 


    } 

現在我得到的輪廓

public final class FacebookProfileDataListener implements org.brickred.socialauth.android.SocialAuthListener<Profile> { 

     @Override 
     public void onError(SocialAuthError arg0) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onExecute(String arg0, Profile profile) { 
      if (profile.getProviderId().equalsIgnoreCase(Provider.FACEBOOK.name())) { 
       //store some of the profile information here 
      } 
      facebookAdapter.getContactListAsync(new FacebookContactDataListener()); 
     } 

    } 

現在的聯繫人列表

public final class FacebookContactDataListener implements SocialAuthListener<List<Contact>> { 

@Override 
public void onError(SocialAuthError arg0) { 
    // TODO Auto-generated method stub 

} 

@Override 
public void onExecute(String arg0, List<Contact> t) { 
    List<Contact> contactList = t; 
    JSONArray listOfIds = new JSONArray(); 

    for (Contact c: contactList) { 
     listOfIds.put(c.getId()); 
    } 
    AppDataManager manager = AppDataManager.getInstance(getSherlockActivity()); 
     manager.setFacebookFriendsIds(listOfIds); 
     manager.setFacebookFriends(contactList); 

} 

} 

在這一點上我有一個名單,我可以工作。

+0

非常感謝您的回覆.. – jagdish

+0

謝謝,幫了我很多, –

相關問題