public IEnumerable <SourceAddress> GetAddresses(string uids) { Authenticate(); string call_id = GetNextCallNr(); string query = String.Format("SELECT uid, name FROM user WHERE uid IN ({0})", uids); Dictionary <string, string> requestParams = new Dictionary <string, string>(); requestParams.Add("method", "fql.query"); requestParams.Add("api_key", apiKey); requestParams.Add("session_key", sessionKey); requestParams.Add("call_id", call_id); requestParams.Add("v", "1.0"); requestParams.Add("query", query); var result = channel.ExecuteQuery(apiKey, sessionKey, call_id, GenerateSignature(requestParams, sessionSecret), query); XNamespace ns = result.GetDefaultNamespace(); foreach (XElement element in result.Descendants(ns + "user")) { SourceAddress address; try { address = new SourceAddress(element.Element(ns + "uid").Value, element.Element(ns + "name").Value); } catch (Exception ex) { Logger.Error("Unable to retreive user source address. Result = {0}. Exception = {1}", LogSource.Channel, element.Value, ex); continue; } yield return(address); } }