我有这个片段

  AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(mFacebook);
                    Bundle bundle = new Bundle();
                    bundle.putString("fields", "birthday");
                    mAsyncRunner.request("me/friends", bundle, new FriendListRequestListener());

它以某种方式起作用,我的意思是我可以从所有朋友那里读取ID。 但是我想阅读所有内容,该怎么做?

    String _error = null;

        JSONObject json = Util.parseJson(response);
        final JSONArray friends = json.getJSONArray("data");

        for (int i = 0; i < friends.length(); i++) {
            Log.v("id:", "id= "+friends.get(i).toString());
         }

我应该怎么做才能获得有关朋友的信息并阅读该信息

我想这是关键,这是从我发现的示例中得出的,并且效果很好

bundle.putString("fields", "birthday");

但是以我为例,它不起作用

bundle.putString("fields", "friends_relationships");

-----------------编辑1 -------------------------

权限代码

    mFacebook.authorize(Example.this, new String[] {"offline_access", "user_interests", "friends_interests","friends_relationships","friends_relationship_details"},new DialogListener() {
        @Override
        public void onComplete(Bundle values) {}

        @Override
        public void onFacebookError(FacebookError error) {}

        @Override
        public void onError(DialogError e) {}

        @Override
        public void onCancel() {}
   });

--------------编辑2 --------------

{“ error”:{“ message”:“必须使用活动访问令牌来查询有关当前用户的信息。”,“ type”:“ OAuthException”,“ code”:2500}}

#1楼 票数:1 已采纳

在大多数情况下,Graph API是明智的选择。 要检索您的朋友信息,您需要首先收集用户的一些扩展权限。 然后,您可以检索除基本信息以外的更多信息。

以下是与朋友相关的各种信息的扩展权限列表

friends_about_me        
friends_activities      
friends_birthday
friends_checkins        
friends_education_history       
friends_events
friends_games_activity      
friends_groups      
friends_hometown
friends_interests       
friends_likes       
friends_location
friends_notes       
friends_online_presence     
friends_photo_video_tags 
friends_photos      
friends_relationship_details        
friends_relationships
friends_religion_politics       
friends_status      
friends_subscriptions
friends_videos      
friends_website     
friends_work_history

facebook.authorize(this, new String[] {"offline_access", "user_interests", "friends_interests"},

编辑:-

如果您的应用需要更多的基本信息才能运行,则必须向用户请求特定的权限。 这是通过将权限的String []传递给authorize方法来完成的。 以下示例显示了如何请求访问用户的电子邮件地址,获取扩展的访问令牌并在某个位置签入用户:

facebook.authorize(this, new String[] { "email", "publish_checkins" },

      new DialogListener() {
           @Override
           public void onComplete(Bundle values) {}

           @Override
           public void onFacebookError(FacebookError error) {}

           @Override
           public void onError(DialogError e) {}

           @Override
           public void onCancel() {}
      }
);

在这里查看更多详细信息。

编辑:-

 mAsyncRunner.request("me/friends?fields=id,name,birthday,relationship_status", new FriendListRequestListener());

JSONObject json = Util.parseJson(response);
final JSONArray friends = json.getJSONArray("data");

for(int i=0;i<friends.length();i++)
{
    JSONObject object = friends.getJSONObject(i);
    Log.i("------------------ Id",object.getString("id"));
    Log.i("------------------ Name",object.getString("name"));
    Log.i("------------------ RelationShip",object.getString("relationship_status"));
 }

#2楼 票数:0

您的朋友关系有单独的权限。 查看权限文档

您需要请求-

  • friends_relationships
  • friends_relationship_details

#3楼 票数:0

到2015年5月,v1.0 facebook Graph API v1.0被弃用时,现在这可能会更长。

#4楼 票数:-1

尝试这个 :

 Bundle params = new Bundle();
 params.putString("fields", "name, picture, location");
    mAsyncFacebook.request("me/friends",params, new RequestListener(){
        @Override
        public void onComplete(String response, Object object) {
            JSONObject jsonObject = null;
            try {
                jsonObject = new JSONObject(response);
            } catch (JSONException e) {
                Log.d(TAG,"Exception :"+e);
            }

        }
   }

要了解有关密钥的信息,请参见以下链接: https : //developers.facebook.com/docs/authentication/permissions/

  ask by Lukap translate from so

未解决问题?本站智能推荐:

1回复

无法使用Graph API获取Facebook视频详细信息

我正在尝试使用Android上的Facebook Graph API获取视频信息(源URL,预览URL,标题,描述)。 对于朋友的视频和在Facebook上发现的一些随机公开视频,一切正常。 但是,它不适用于使用测试用户帐户上传的视频。 这些用户不在我的朋友列表中。 HTTP查询
1回复

在Facebook上获取信息朋友

我开始研究Facebook Graph API。 我想列出一个朋友列表,并输出个人信息(一般信息,就业和教育程度等)。 我怎样才能做到这一点? 朋友列表变得如此:AccessToken令牌= AccessToken.getCurrentAccessToken(); 我尝试使用“
1回复

为什么Facebook用户的详细信息不会出现?

我正在使用最新的facebook sdk 4.8进行简单的facebook登录,但登录后我获得空值,没有用户详细信息即将到来,但只有我获得详细信息,如果用户是该Facebook应用程序的开发人员和管理员。 而且我也获得了facebook的许可。
1回复

我们如何在解析中存储Facebook用户的详细信息?

我在Android应用程序中使用带有parse的facebook实用程序进行登录。 使用facebook实用程序登录可以正常工作。 它仅插入“用户”表的“用户名”和“ authData”列。 我正在使用facebook的图形API获取facebook用户的姓名和电子邮件。 题 -
1回复

获取Facebook用户的朋友列表[重复]

这个问题已经在这里有了答案: Facebook Graph API v2.0 +-/ me / friends返回空,或者仅返回也使用我的应用程序的朋友 7回答 我做了一个Android应用程序,它将获取Facebook登录用户的所有朋友。但是它并没有获取所有朋友。
2回复

获取具有名称的Facebook朋友列表

我正在使用Facebook SDK 4.x ,并且我需要获取具有名称的朋友列表,但我无法获取它,我还实现了此graph API 这是我的reponse 如果您有除plz给我以外的任何想法,我不会在朋友列表中找到名字。 提前致谢。
1回复

在列表中获取Facebook朋友签到

我正在与Facebook sdk和android进行集成,我愿意在ListAdapter中显示我所有的朋友签到,这可能吗? 我通过此链接说,可以从此Link中检索特定的用户(或)特定的地方。
1回复

如何获取已登录用户的雇主详细信息

我正在使用Facebook SDK 3.5集成Facebook登录并通过android应用程序获取登录用户的详细信息。 请查看我的代码,我可以在该代码中获取已登录用户的各种信息。 但是我没有找到有关已登录用户的“雇主详细信息”的任何线索。 我如何获得此信息。 有可能还是没有。 请