/// <summary> /// Makes an asynchronous POST request to the Facebook server. /// </summary> /// <param name="path"> /// The resource path. /// </param> /// <param name="parameters"> /// The parameters. /// </param> /// <param name="callback"> /// The callback. /// </param> public void PostAsync(string path, object parameters, FacebookAsyncCallback callback) { if (string.IsNullOrEmpty(path) && parameters == null) { throw new ArgumentException("At least path or parameters must be defined."); } PostAsync(path, FacebookUtils.ToDictionary(parameters), callback, null); }
/// <summary> /// Makes an asynchronous POST request to the Facebook server. /// </summary> /// <param name="parameters"> /// The parameters. /// </param> /// <param name="callback"> /// The callback. /// </param> public void PostAsync(object parameters, FacebookAsyncCallback callback) { if (parameters == null) { throw new ArgumentNullException("parameters"); } PostAsync(FacebookUtils.ToDictionary(parameters), callback, null); }
/// <summary> /// Makes a POST request to the Facebook server. /// </summary> /// <param name="parameters"> /// The parameters. /// </param> /// <exception cref="Facebook.FacebookApiException" /> /// <returns> /// The json result. /// </returns> public object Post(object parameters) { Contract.Requires(parameters != null); if (parameters is IDictionary <string, object> ) { return(Post((IDictionary <string, object>)parameters)); } return(Post(FacebookUtils.ToDictionary(parameters))); }
/// <summary> /// Makes a POST request to the Facebook server. /// </summary> /// <param name="path"> /// The resource path. /// </param> /// <param name="parameters"> /// The parameters. /// </param> /// <exception cref="Facebook.FacebookApiException" /> /// <returns> /// The json result. /// </returns> public object Post(string path, object parameters) { Contract.Requires(!(String.IsNullOrEmpty(path) && parameters == null)); if (parameters is IDictionary <string, object> ) { return(Post(path, (IDictionary <string, object>)parameters)); } return(Post(path, FacebookUtils.ToDictionary(parameters))); }
public FacebookSession(IDictionary <string, object> dictionary, IFacebookApplication settings) { if (dictionary == null) { throw new ArgumentNullException("dictionary"); } if (settings == null) { throw new ArgumentNullException("settings"); } _settings = settings; var data = dictionary is JsonObject ? dictionary : FacebookUtils.ToDictionary(dictionary); AccessToken = data.ContainsKey("access_token") ? (string)data["access_token"] : null; if (!data.ContainsKey("uid") && !string.IsNullOrEmpty(AccessToken)) { data.Add("uid", ParseUserIdFromAccessToken(AccessToken)); } string sUserId = data.ContainsKey("uid") && data["uid"] != null ? data["uid"].ToString() : null; long userId = 0; long.TryParse(sUserId, out userId); UserId = userId; Secret = data.ContainsKey("secret") ? (string)data["secret"] : null; SessionKey = data.ContainsKey("session_key") ? (string)data["session_key"] : null; if (data.ContainsKey("expires")) { Expires = data["expires"].ToString() == "0" ? DateTime.MaxValue : DateTimeConvertor.FromUnixTime(Convert.ToDouble(data["expires"])); } else { Expires = DateTime.MinValue; } Signature = data.ContainsKey("sig") ? (string)data["sig"] : null; BaseDomain = data.ContainsKey("base_domain") ? (string)data["base_domain"] : null; _data = data; }
/// <summary> /// Converts the facebook batch to POST parameters. /// </summary> /// <param name="batchParameter"> /// The batch parameter. /// </param> /// <returns> /// The post parameters. /// </returns> protected IDictionary <string, object> ToParameters(FacebookBatchParameter batchParameter) { Contract.Requires(batchParameter != null); Contract.Ensures(Contract.Result <IDictionary <string, object> >() != null); IDictionary <string, object> returnResult = null; var defaultParameters = new Dictionary <string, object>(); defaultParameters["method"] = FacebookUtils.ConvertToString(batchParameter.HttpMethod); IDictionary <string, object> parameters = null; if (batchParameter.Parameters == null) { parameters = new Dictionary <string, object>(); } else { if (batchParameter.Parameters is IDictionary <string, object> ) { parameters = (IDictionary <string, object>)batchParameter.Parameters; } else { parameters = FacebookUtils.ToDictionary(batchParameter.Parameters); } } var path = FacebookUtils.ParseQueryParametersToDictionary(batchParameter.Path, parameters); string queryString = string.Empty; if (batchParameter.HttpMethod == HttpMethod.Get) { queryString = FacebookUtils.ToJsonQueryString(parameters); } else { defaultParameters["body"] = FacebookUtils.ToJsonQueryString(parameters); } var relativeUrl = new StringBuilder(path); if (!string.IsNullOrEmpty(queryString)) { relativeUrl.AppendFormat("?{0}", queryString); } defaultParameters["relative_url"] = relativeUrl.ToString(); var data = batchParameter.Data; if (data == null) { returnResult = defaultParameters; } else { if (!(data is IDictionary <string, object>)) { data = FacebookUtils.ToDictionary(batchParameter.Data); } returnResult = FacebookUtils.Merge(defaultParameters, (IDictionary <string, object>)data); } return(returnResult); }
/// <summary> /// Makes an asynchronous POST request to the Facebook server. /// </summary> /// <param name="parameters"> /// The parameters. /// </param> public void PostAsync(object parameters) { Contract.Requires(parameters != null); PostAsync(FacebookUtils.ToDictionary(parameters)); }
/// <summary> /// Makes an asynchronous POST request to the Facebook server. /// </summary> /// <param name="path"> /// The resource path. /// </param> /// <param name="parameters"> /// The parameters. /// </param> /// <param name="userToken"> /// The user token. /// </param> public void PostAsync(string path, object parameters, object userToken) { Contract.Requires(!(String.IsNullOrEmpty(path) && parameters == null)); PostAsync(path, FacebookUtils.ToDictionary(parameters), userToken); }
/// <summary> /// Makes an asynchronous POST request to the Facebook server. /// </summary> /// <param name="path"> /// The resource path. /// </param> /// <param name="parameters"> /// The parameters. /// </param> /// <param name="callback"> /// The callback. /// </param> public void PostAsync(string path, object parameters, FacebookAsyncCallback callback) { Contract.Requires(!(String.IsNullOrEmpty(path) && parameters == null)); PostAsync(path, FacebookUtils.ToDictionary(parameters), callback, null); }
/// <summary> /// Makes an asynchronous POST request to the Facebook server. /// </summary> /// <param name="parameters"> /// The parameters. /// </param> /// <param name="callback"> /// The callback. /// </param> public void PostAsync(object parameters, FacebookAsyncCallback callback) { Contract.Requires(parameters != null); PostAsync(FacebookUtils.ToDictionary(parameters), callback, null); }
/// <summary> /// Makes a POST request to the Facebook server. /// </summary> /// <param name="parameters"> /// The parameters. /// </param> /// <exception cref="Facebook.FacebookApiException" /> /// <returns> /// The json result. /// </returns> public object Post(object parameters) { Contract.Requires(parameters != null); return(Post(FacebookUtils.ToDictionary(parameters))); }