如何从android中的facebook API获取所有朋友的姓名,身份证,生日,地点等.

mil*_*ind 10 android facebook

可能重复:
如何使用facebook api获取朋友的生日列表?

我想在android应用程序中显示包含名称,ID,生日,位置等信息的列表.

虽然下面的代码我得到了朋友的名字和身份证,但我在工作中取得了成功

           Bundle parameters = new Bundle();
    mAccessToken = facebook.getAccessToken();

    try {

        parameters.putString("format", "json");
        parameters.putString(TOKEN, mAccessToken);

        String url = "https://graph.facebook.com/me/friends";
        String response = Util.openUrl(url, "GET", parameters);
        JSONObject obj = Util.parseJson(response);

        Log.i("json Response", obj.toString());
        JSONArray array = obj.optJSONArray("data");

        if (array != null) {
            for (int i = 0; i < array.length(); i++) {
                String name = array.getJSONObject(i).getString("name");

                String id = array.getJSONObject(i).getString("id");

                Log.i(name,id);
            }
        } 

                ............
                ............
Run Code Online (Sandbox Code Playgroud)

但不能在json响应中获取生日,位置等字段.什么是错误?

Daa*_*aan 9

使用FQL语言快速获取所需的所有信息:

$this->api->api(array('method'=>'fql.query','query'=>"SELECT uid,name,first_name,middle_name,last_name,pic_square,hometown_location,current_location,profile_url,email,website FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())"));
Run Code Online (Sandbox Code Playgroud)

有关具有相应列名的所有表的列表,请参阅:Facebook FQL参考


小智 6

当我想获得我的朋友列表,并过滤他们的名字和网站时,这对我有用:https://graph.facebook.com/me/friends?fields = name,website &access_token = someCrazyLongRandomlyGeneratedString

看起来你应该这样做,你只需将'name,website'替换为'name,id,birthday,location'或者你想从User对象中包含的字段列表中得到的任何内容:http://developers.facebook.com/docs/reference/api/user/.我相信id会自动包含在响应中,因此您不必将其实际包含在请求中.


Dav*_*ave 5

Facebook API FriendList只包含一个idname每个朋友.

我没有使用Facebook API,但我认为你需要查询https://graph.facebook.com/[id]每个用户,根据需要插入他们的id,返回所有可用信息,然后分别解析每个用户的JSON响应(他们的文档不是特别清楚).