/// <summary> /// VIDEO-DESCRIPTION. /// Schedules a post. /// https://developers.facebook.com/docs/pages/publishing/ /// </summary> /// <param name="page"></param> /// <param name="pathToVideo"></param> /// <param name="description"></param> /// <param name="unixTimeStamp"></param> /// <returns></returns> public FacebookGraphResult <FacebookPost> SchedulePost(FacebookPageInformation page, string content, FacebookVideo video, long unixTimeStamp) { var uploadResult = UploadVideo(page, content, video, unixTimeStamp); if (!uploadResult.IsSuccessful) { return(FacebookGraphResult <FacebookPost> .Fail("An error has occured while trying to upload video to facebook via Graph API. Details: " + uploadResult.Message)); } var _fbRestClient = new RestClient($"https://graph.facebook.com/{page.Id}/videos") { Authenticator = new JwtAuthenticator(page.AccessToken) }; var request = new RestRequest(Method.POST); request.AddParameter("media_fbid", uploadResult.Entity.Id); try { //BadRequest dönmesine rağmen başarılı bu. (buraya exceptional bir şey eklemeliyiz.) //Facebook dev ekibiyle iletişime de geçilebilir. var response = _fbRestClient.Execute(request); //if(response.StatusCode.Equals(HttpStatusCode.BadRequest)) //if (!response.IsSuccessful) //{ // return FacebookGraphResult<bool>.Fail(response.Content); //} return(FacebookGraphResult <FacebookPost> .Success(JsonConvert.DeserializeObject <FacebookPost>(response.Content))); } catch (Exception ex) { return(FacebookGraphResult <FacebookPost> .Fail(ex.Message)); } }
/// <summary> /// FOR SCHEDULED PUBLISH. /// </summary> /// <param name="page"></param> /// <param name="content"></param> /// <param name="video"></param> /// <param name="unixTimestamp"></param> /// <returns></returns> private FacebookGraphResult <FacebookVideo> UploadVideo(FacebookPageInformation page, string content, FacebookVideo video, long unixTimestamp) { var _fbRestClient = new RestClient($"https://graph-video.facebook.com/{page.Id}/videos?file_url={video.VideoURL}&description={content}&published={video.IsPublished}&scheduled_publish_time={unixTimestamp}") { Authenticator = new JwtAuthenticator(page.AccessToken) }; var request = new RestRequest(Method.POST); try { var response = _fbRestClient.Execute(request); if (!response.IsSuccessful) { return(FacebookGraphResult <FacebookVideo> .Fail(response.Content)); } var uploadVideoResponse = JsonConvert.DeserializeObject <FacebookVideo>(response.Content); return(FacebookGraphResult <FacebookVideo> .Success(uploadVideoResponse)); } catch (Exception ex) { return(FacebookGraphResult <FacebookVideo> .Fail(ex.Message)); } }
/// <summary> /// Publishes a video post on a Facebook page/group /// </summary> /// <param name="account"></param> /// <param name="content"></param> /// <param name="video"></param> /// <returns></returns> public FacebookGraphResult <FacebookPost> PublishPost(FacebookPageInformation page, string content, FacebookVideo video) { try { var uploadResult = UploadVideo(page, content, video); if (!uploadResult.IsSuccessful) { return(FacebookGraphResult <FacebookPost> .Fail("An error has occured while trying to upload video to Facebook. Details: " + uploadResult.Message)); } else { return(FacebookGraphResult <FacebookPost> .Success(new FacebookPost { Id = uploadResult.Entity.Id })); } } catch (Exception ex) { return(FacebookGraphResult <FacebookPost> .Fail(ex.Message)); } }