public async Task <ActionResult> Index() { #region Permission Check PermissionRequestViewModel permissionViewModel = base.GetMissingPermissions(); if (permissionViewModel != null && permissionViewModel.MissingPermissions.Count > 0) { return(View("FB_RequestPermission", permissionViewModel)); } #endregion 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); //Get current user's profile dynamic myInfo = await fb.GetTaskAsync("me?fields=first_name,last_name,link,locale,email,name,birthday,gender,location,bio,age_range".GraphAPICall(appsecret_proof)); //get current picture dynamic profileImgResult = await fb.GetTaskAsync("{0}/picture?width=100&height=100&redirect=false".GraphAPICall((string)myInfo.id, appsecret_proof)); //Hydrate FacebookProfileViewModel with Graph API results var facebookProfile = DynamicExtension.ToStatic <FacebookProfileViewModel>(myInfo); facebookProfile.ImageURL = profileImgResult.data.url; return(View(facebookProfile)); } else { throw new HttpException(404, "Missing Access Token"); } }
public ActionResult RequestPermissions( string okButton, string cancelButton, string redirectURI, PermissionRequestViewModel acknowledgedPermissionRequest) { TempData["ProcessingPermissionRequest"] = true; if (okButton != null) { StringBuilder permission_scope = new StringBuilder(); foreach (FacebookPermissionRequest permission in acknowledgedPermissionRequest.MissingPermissions. Where(x => x.requested == true)) { permission_scope.Append( string.Format("{0} ", permission.permision_scope_value)); } if (permission_scope.Length == 0) { return(Redirect("Index")); } else { var rerequestURL = base.AddPermissions(permission_scope.ToString(), redirectURI); return(Redirect(rerequestURL)); } } else //if(cancelButton != null) { return(Redirect("Index")); } }
public async Task <ActionResult> GetMoreData(string NextPageUri) { if (!string.IsNullOrEmpty(NextPageUri)) { #region Permission Check PermissionRequestViewModel permissionViewModel = base.GetMissingPermissions(); if (permissionViewModel != null && permissionViewModel.MissingPermissions.Count > 0) { return(View("FB_RequestPermission", permissionViewModel)); } #endregion #region Get More Paged Data 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); dynamic nextPageResult = await fb.GetTaskAsync(NextPageUri.GraphAPICall(appsecret_proof)); #region Hydrate results //Hydrate FacebookProfileViewModel with Graph API results var userList = new List <FacebookFriendViewModel>(); foreach (dynamic friend in nextPageResult.data) { userList.Add(DynamicExtension.ToStatic <FacebookFriendViewModel>(friend)); } #endregion #region Paging Results string NextPageURI = string.Empty; if (nextPageResult.paging != null && nextPageResult.paging.next != null) { NextPageURI = nextPageResult.paging.next; } ViewBag.ShowGetMoreData = GetNextPageQuery(NextPageURI, access_token); #endregion return(PartialView("FindResults", userList)); } else { throw new HttpException(404, "Missing Access Token"); } #endregion } else { return(null); } }
public ActionResult Index() { #region Permission Check PermissionRequestViewModel permissionViewModel = base.GetMissingPermissions(); if (permissionViewModel != null && permissionViewModel.MissingPermissions.Count > 0) { return(View("FB_RequestPermission", permissionViewModel)); } #endregion return(View()); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { #region Permission Check var myBaseController = (BaseController)filterContext.Controller; PermissionRequestViewModel permissionViewModel = myBaseController.GetMissingPermissions(); if (permissionViewModel != null && permissionViewModel.MissingPermissions.Count > 0) { //Set redirect URI using current http request controller's index action permissionViewModel.redirectURI = myBaseController.Url.Action("Index", filterContext.ActionDescriptor.ControllerDescriptor.ControllerName, null, filterContext.HttpContext.Request.Url.Scheme); filterContext.Result = myBaseController.FB_RequestPermission(permissionViewModel); return; } #endregion base.OnActionExecuting(filterContext); }
public PermissionRequestViewModel GetMissingPermissions() { bool checkPermission = true; if (TempData["ProcessingPermissionRequest"] != null) { checkPermission = !((bool)TempData["ProcessingPermissionRequest"]); } if (checkPermission) { //Check all permission and create list of Missing Permissions PermissionRequestViewModel permissionViewModel = new PermissionRequestViewModel(); permissionViewModel.MissingPermissions = CheckPermissions( GetRequiredPermissions()); return(permissionViewModel); } return(null); }
public ActionResult FB_RequestPermission(PermissionRequestViewModel MissingPermissions) { return(View("FB_RequestPermission", MissingPermissions)); }
public async Task <ActionResult> Find( string QueryValue, string SearchBy, string SearchCenterCoordinates) { #region Permission Check PermissionRequestViewModel permissionViewModel = base.GetMissingPermissions(); if (permissionViewModel != null && permissionViewModel.MissingPermissions.Count > 0) { return(View("FB_RequestPermission", permissionViewModel)); } #endregion #region Facebook Graph API Search call 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); #region Search For Place string _searchCenterParam = string.Empty; if (SearchBy == "place" && !string.IsNullOrEmpty(SearchCenterCoordinates)) { _searchCenterParam = string.Format("¢er={0}&distance={1}", SearchCenterCoordinates, ConfigurationManager.AppSettings["Facebook_Distance_Meters"].ToString()); } #endregion #region Search Facebook Graph Query call dynamic myInfo = await fb.GetTaskAsync( (string.Format("search?q={0}&type={1}{2}&limit=50", QueryValue, SearchBy, _searchCenterParam) + "&fields=name,id,picture.type(large).width(100).height(100){{url}}") .GraphAPICall(appsecret_proof)); #endregion #region Hydrate results //Hydrate FacebookProfileViewModel with Graph API results var userList = new List <FacebookFriendViewModel>(); foreach (dynamic friend in myInfo.data) { userList.Add(DynamicExtension.ToStatic <FacebookFriendViewModel>(friend)); } #endregion #region Paging Results string NextPageURI = string.Empty; if (myInfo.paging != null && myInfo.paging.next != null) { NextPageURI = myInfo.paging.next; } ViewBag.ShowGetMoreData = GetNextPageQuery(NextPageURI, access_token); #endregion return(PartialView("FindResults", userList)); } else { throw new HttpException(404, "Missing Access Token"); } #endregion }