我想在我的应用中检索所有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。
答案 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();