protected List <FacebookPermissionRequest> CheckPermissions( Dictionary <string, FacebookPermissionRequest> RequiredPermissions) { var access_token = HttpContext.Items["access_token"].ToString(); if (!string.IsNullOrEmpty(access_token)) { var appsecret_proof = access_token.GenerateAppSecretProof(); var fb = new FacebookClient(access_token); IEnumerable <FacebookPermissionRequest> MissingPermissions = new List <FacebookPermissionRequest>(); //initialize to an empty list if (RequiredPermissions != null && RequiredPermissions.Count > 0) { //create an array of Facebook Batch Parameters based on list of RequiredPermission FacebookBatchParameter[] fbBatchParameters = new FacebookBatchParameter[RequiredPermissions.Values.Count()]; int idx = 0; foreach (FacebookPermissionRequest required_permssion in RequiredPermissions.Values) { fbBatchParameters[idx] = new FacebookBatchParameter { HttpMethod = HttpMethod.Get, Path = string.Format("{0}{1}", "me/permissions/", required_permssion.permision_scope_value) .GraphAPICall(appsecret_proof) }; required_permssion.granted = false; //initalize all granted indicators to false for each required permission idx++; } dynamic permission_Batchresult = fb.Batch( fbBatchParameters ); if (permission_Batchresult != null) { List <PermissionResults> result = JsonConvert. DeserializeObject <List <PermissionResults> > (permission_Batchresult.ToString()); foreach (FacebookPermissionModel permissionResult in result.SelectMany(x => x.data).Where(y => y.status == "granted")) { RequiredPermissions[permissionResult.permission].granted = true; } MissingPermissions = RequiredPermissions.Values. Where(p => p.granted == false); } } return(MissingPermissions.ToList()); } else { throw new HttpException(404, "Missing Access Token"); } }
public JsonArray EditPost(string post_id, Dictionary <string, object> parameters) { try { FacebookBatchParameter[] batchArray = new FacebookBatchParameter[2]; batchArray[0] = new FacebookBatchParameter(HttpMethod.Delete, post_id); batchArray[1] = new FacebookBatchParameter(HttpMethod.Post, post_id, parameters); dynamic result = fb.Batch(batchArray); return(result); } catch (Exception ex) { throw ex; } }
/// <summary> /// Upload Multiple Video files /// </summary> /// <param name="parameters"></param> /// <returns></returns> public JsonArray UploadMultipleVideos(List <Dictionary <string, object> > parameters) { try { FacebookBatchParameter[] batchArray = new FacebookBatchParameter[parameters.Count]; for (int i = 0; i < parameters.Count; i++) { batchArray[i] = new FacebookBatchParameter(HttpMethod.Post, base.pageID + "/videos", parameters[i]); } dynamic result = fb.Batch(batchArray); return(result); } catch (Exception ex) { throw ex; } }
async public Task <JsonArray> UploadMultiplePhotosAsync(List <Dictionary <string, object> > parameters) { try { FacebookBatchParameter[] batchArray = new FacebookBatchParameter[parameters.Count]; for (int i = 0; i < parameters.Count; i++) { batchArray[i] = new FacebookBatchParameter(HttpMethod.Post, base.pageID + "/photos", parameters[i]); } dynamic result = await fb.BatchTaskAsync(batchArray); return(result); } catch (Exception ex) { throw ex; } }
public object UploadFaceBookBatch(FacebookPosting input) { try { var fb = new FacebookClient(input.FacebookToken); fb.AppId = input.FacebookAppId; fb.AppSecret = input.FacebookAppSecret; List <FacebookBatchParameter> fbp = new List <FacebookBatchParameter>(); int count = 0; foreach (var item in input.PostingItems) { string extension = Path.GetExtension(item.url); string FileName = Path.GetFileName(item.url); if (!string.IsNullOrEmpty(extension)) { extension = extension.Replace(".", ""); } var param = new FacebookBatchParameter(HttpMethod.Post, "/me/photos", new Dictionary <string, object> { { "message", item.Title }, { "pic" + count, new FacebookMediaObject { ContentType = "image/" + extension, FileName = FileName }.SetValue(File.ReadAllBytes(item.url)) } }); fbp.Add(param); count++; } return(fb.BatchTaskAsync(fbp.ToArray()).Result); } catch (FacebookOAuthException ex) { Console.WriteLine(ex.Message); return(ex); } catch (FacebookApiException ex) { Console.WriteLine(ex.Message); return(ex); } }
/// <summary> /// Makes a batch request to the Facebook server. /// </summary> /// <param name="batchParameters">List of batch parameters.</param> /// <param name="parameters">The parameters</param> /// <returns>The json result.</returns> public virtual object Batch(FacebookBatchParameter[] batchParameters, object parameters) { var actualParameter = PrepareBatchRequest(batchParameters, parameters); return Post(actualParameter); }
public virtual void GivenNullFqlInQueryThrowsArgumentNullException() { var bp = new FacebookBatchParameter(); Assert.Throws <ArgumentNullException>(() => bp.Query((string)null)); }
public virtual void GivenEmptyFqlInMultiQueryThrowsArgumentException() { var bp = new FacebookBatchParameter(); Assert.Throws <ArgumentException>(() => bp.Query(new string[] { })); }