Facebook可标记的朋友api不会返回数字ID

时间:2015-10-23 09:08:08

标签: android facebook facebook-graph-api facebook-access-token

我想在我的应用中检索所有Facebook好友列表。 我使用“/ me / taggable_friends /”api来获取朋友列表。 我需要特定朋友的ID,以便我可以将它存储在这个朋友被邀请的数据库中。 但每次它给出不同的ID。以下是我的graphrequest:

Bundle parameterstag = new Bundle();
            parameterstag.putString("limit", "5000");
            parameterstag.putString("fields", "id,name,gender");
            GraphRequest graphRequest = GraphRequest.newGraphPathRequest(AccessToken.getCurrentAccessToken(),"/me/taggable_friends/", new GraphRequest.Callback()
                    {
                        @Override
                        public void onCompleted(GraphResponse graphResponse) 
                        {
                            JSONObject jsonObject = graphResponse.getJSONObject();
                            try
                            {
                                if(jsonObject != null)
                                {
                                    String strJson = jsonObject.getString("data");
                                    Log.v("", "TAGG=="+strJson);
                                    JSONArray jArray=new JSONArray(strJson);
                                    for (int i = 0; i < jArray.length(); i++) 
                                    {
                                        String idfb = jArray.getJSONObject(i).getString("id");
                                        String namefb = jArray.getJSONObject(i).getString("name");

                                    }
                                }
                            }
                            catch (JSONException e)
                            {
                                e.printStackTrace();
                            }
                        }
                    });
            graphRequest.setAccessToken(AccessToken.getCurrentAccessToken());
            graphRequest.setParameters(parameterstag);
            graphRequest.executeAsync();

或者还有其他方法可以获得不使用您的应用程序的frndslist。

2 个答案:

答案 0 :(得分:1)

您无法使用/me/taggable_friends来代替/me/friends。它只能在帖子中标记朋友。 /me/invitable_friends只能用于邀请朋友安装画布应用。

  

v2.0中提供的新功能

     
      
  • Taggable Friends API:我们添加了一个名为/ me / taggable_friends的新端点,您可以使用它来生成在其中标记有朋友的故事,即使这些朋友也不会使用您的应用。如果您想使用可标记的朋友API,您的应用将需要审核。
  •   
  • Invitable Friends API:我们添加了一个名为/ me / invitable_friends的新端点,您可以使用该端点生成朋友列表,供有人通过自定义界面邀请您加入游戏。此API仅适用于Facebook Canvas上的游戏应用。
  •   

另外,请参阅问题

答案 1 :(得分:0)

试试这个:

 new GraphRequest(
        AccessToken.getCurrentAccessToken(),
        "/me/taggable_friends",
        null,
        HttpMethod.GET,
        new GraphRequest.Callback() {
            public void onCompleted(GraphResponse response) {
                /* handle the result */
     JSONObject jsonObject = graphResponse.getJSONObject();
                            try
                            {
                                if(jsonObject != null)
                                {
                                    String strJson = jsonObject.getString("data");
                                    Log.v("", "TAGG=="+strJson);
                                    JSONArray jArray=new JSONArray(strJson);
                                    for (int i = 0; i < jArray.length(); i++) 
                                    {
                                        String idfb = jArray.getJSONObject(i).getString("id");
                                        String namefb = jArray.getJSONObject(i).getString("name");

                                    }
                                }
                            }
                            catch (JSONException e)
                            {
                                e.printStackTrace();
                            }

            }
        }
    ).executeAsync();