簡體   English   中英

如何在Android中使用社交身份驗證訪問Facebook朋友列表?

[英]how to access facebook friends list using social auth in android?

我正在使用社交身份驗證庫進行Facebook集成。 我可以共享/發布文本或圖像,但我想訪問我的朋友列表。

是否可以通過Android中的社交身份驗證訪問朋友列表?

提前致謝...

我正在使用socialauth獲取Facebook中的朋友列表。 他們在github頁面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);

}

}

此時,我有一個可以使用的列表。

https://developers.facebook.com/tools/

使用圖形Api搜索。

https://graph.facebook.com/YOUR_ID?fields=friends ,將向您顯示整個朋友列表。

https://graph.facebook.com/YOUR_ID?fields=friendlists ,只會顯示25個朋友。

這是正確的答案:在包含graph.facebook.com.consumer_secret的行下,將其添加到oauth_consumer.properties文件:

graph.facebook.com.custom_permissions = user_friends

read_friendlists具體取決於您真正需要的權限。

檢查https://developers.facebook.com/docs/facebook-login/permissions/v2.0了解有關權限的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM