0
我正在Mac OS X中使用Xamarin Studio(C#)开发iOS应用程序。我想在Facebook上获得用户的朋友列表,因此我添加了Facebook's component from Xamarin's component store并提出了一个请求(代码在底部)。这是我得到的回应:Facebook的朋友JSON响应无效
{
data = (
{
"first_name" = Dev;
id = 100001438778777;
"last_name" = Accu;
}
);
paging = {
next = "https://graph.facebook.com/v2.0/100005203000814/friends?fields=id,first_name,last_name&format=json&access_token=CAAK3hGOIm2ABANPUcr2QU1t8gqLNsZCJBrc8ZCZCqUSwHkX2f43VHarvc1ZABbjDrY7jIO0OT5ZBRBiZC1audQnIvxCsOu60y30iR84jVa56beNTptixj7AFqT92ZBGdyxDshFHHxkFDgCg9JyRZBYfqaGKkeJkuxJVUXDq8eR8ZCmRlslpOVSavQZC1hCcxOwdgFS2jWQdGZBFVSYTkrhkavfP&limit=5000&offset=5000&__after_id=enc_Aey-LjP59ZnmKMcZKcEr94tTUPIHIvWj9JnMwkIVSvxJ9RBYBqhBt3bGKlURY4SHBCDeH8BM_wSsqICzEFgKiZvh";
};
}
有两个问题与此响应,它只包括1个朋友不知什么原因,和JSON是无效的,所以最终解析失败。下面是我使用,使请求的代码:
var friendsRequest = await new FBRequest(FBSession.ActiveSession, "/me/friends?fields=id,first_name,last_name").StartAsync();
var friendsArray = friendsRequest.Result as MonoTouch.Foundation.NSMutableDictionary;
var response = FriendResponse.FromJson(friendsArray.ToString());
List<FacebookProfile> friends = new List<FacebookProfile>();
foreach (var friend in response.Data)
{
friends.Add(new FacebookProfile(friend.ID, friend.FirstName, friend.LastName));
}
这里是解析类:
public class NextPage
{
public string Next { get; set; }
}
public class Friend
{
public string ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class FriendResponse
{
public List<Friend> Data { get; set; }
public NextPage Paging { get; set; }
public static FriendResponse FromJson(string json)
{
JsConfig.EmitLowercaseUnderscoreNames = true;
return JsonSerializer.DeserializeFromString<FriendResponse>(json);
}
}
来自Facebook V2.0“应用程序朋友:/我/朋友端点_不再包含一个人的朋友的完整列表。现在,它会返回那个也在使用您的应用程序的朋友的列表。 “ https://developers.facebook.com/docs/apps/changelog - 在'图表API' – bauerMusic
@bauerMusic之下,这是有道理的,因为返回的朋友帐户也在使用该应用程序。谢谢。我留下了为什么返回的JSON格式无效。 – Ramsay