public IEnumerable <FbContact> GetUsersInfo(string ids) { Authenticate(); string call_id = GetNextCallNr(); Dictionary <string, string> requestParamsUserInfo = new Dictionary <string, string>(); requestParamsUserInfo.Add("method", "users.getinfo"); requestParamsUserInfo.Add("api_key", apiKey); requestParamsUserInfo.Add("session_key", sessionKey); requestParamsUserInfo.Add("call_id", call_id); requestParamsUserInfo.Add("v", "1.0"); requestParamsUserInfo.Add("uids", ids); requestParamsUserInfo.Add("fields", "name,last_name,first_name,pic_square"); XElement result = channel.GetUserInfo(apiKey, sessionKey, call_id, GenerateSignature(requestParamsUserInfo, sessionSecret), ids, "name,last_name,first_name,pic_square"); XNamespace ns = result.GetDefaultNamespace(); if (!IsError(result)) { foreach (XElement resultElement in result.Elements()) { FbContact contact = new FbContact(); try { contact.UserId = resultElement.Element(ns + "uid").Value; contact.Name = resultElement.Element(ns + "name").Value; contact.Lastname = resultElement.Element(ns + "last_name").Value; contact.Firstname = resultElement.Element(ns + "first_name").Value; contact.AvatarSquareUrl = resultElement.Element(ns + "pic_square").Value; } catch (NullReferenceException e) { Logger.Error("Unable to retreive contact details for contact. Uid = {0}", LogSource.Channel, resultElement.Value); continue; } yield return(contact); } } }