我正在使用社交身份驗證庫進行Facebook集成。我可以分享/發佈文字或圖片,但我想訪問我的朋友列表。如何在Android中使用社交身份驗證訪問Facebook好友列表?
是否有可能通過android中的社交身份驗證訪問好友列表?
在此先感謝...
我正在使用社交身份驗證庫進行Facebook集成。我可以分享/發佈文字或圖片,但我想訪問我的朋友列表。如何在Android中使用社交身份驗證訪問Facebook好友列表?
是否有可能通過android中的社交身份驗證訪問好友列表?
在此先感謝...
https://developers.facebook.com/tools/
使用圖形API搜索。
https://graph.facebook.com/YOUR_ID?fields=friends,會告訴你整個朋友的列表。
https://graph.facebook.com/YOUR_ID?fields=friendlists,只會告訴你25個朋友。
謝謝@Thushar,有沒有任何使用社交認證訪問朋友列表的例子?我正在使用此庫code.google.com/p/socialauth-android。 – jagdish
我正在使用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);
}
}
在這一點上我有一個名單,我可以工作。
非常感謝您的回覆.. – jagdish
謝謝,幫了我很多, –
這是正確的答案:這取決於什麼權限你真正需要
graph.facebook.com.custom_permissions = user_friends
或read_friendlists
:添加到您的oauth_consumer.properties文件,其中包含graph.facebook.com.consumer_secret
線下。
有關權限的更多信息,請檢查https://developers.facebook.com/docs/facebook-login/permissions/v2.0。
當您授權給Facebook時,您必須添加'read_friendlists'。然後請求'/我/ friendlists' – Gooziec
感謝您的回覆@Gooziec,有沒有任何例子? – jagdish
你使用sdk由facebook提供嗎?如果是這樣,那麼你可以查看他們的頁面https://developers.facebook.com/docs/graph-api/reference/user/friendlists – Gooziec