/// <summary> /// FOR VIDEO. /// </summary> /// <param name="token"></param> /// <param name="account"></param> /// <param name="videoPath"></param> /// <param name="description"></param> /// <returns></returns> public LinkedInAPIResult <bool> SharePost(OAuthv2AccessToken token, LinkedInAccount account, string videoPath, string description) { try { var registerUploadResponse = RegisterVideoUpload(token, LinkedInRegisterUploadRequest.Create(account.UserId, account.PersonalOrOrganization)); if (!registerUploadResponse.IsSuccessful) { return(LinkedInAPIResult <bool> .Fail("An error has occured while trying to register video upload on LinkedIn. Details: " + registerUploadResponse.Message)); } var uploadResponse = UploadVideo(token, videoPath, registerUploadResponse.Entity.Value.UploadMechanism.ComLinkedinDigitalmediaUploadingMediaUploadHttpRequest.UploadUrl); if (!uploadResponse.IsSuccessful) { return(LinkedInAPIResult <bool> .Fail("An error has occured while trying to upload video on LinkedIn. Details: " + uploadResponse.Message)); } var createUgcPostResponse = CreateOrganicUGCPost(token, RequestCreateUGCPost.Create(account, registerUploadResponse.Entity.Value.Asset, description)); if (!createUgcPostResponse.IsSuccessful) { return(LinkedInAPIResult <bool> .Fail("An error has occured while trying to creating organic UGC post with video on LinkedIn. Details: " + createUgcPostResponse.Message)); } return(LinkedInAPIResult <bool> .Success(true)); } catch (Exception ex) { return(LinkedInAPIResult <bool> .Fail("An error has occured while trying publish post with video on LinkedIn. Details: " + ex.Message)); } }
/// <summary> /// LinkedIn register upload /// </summary> /// <param name="token"></param> /// <returns></returns> public LinkedInAPIResult <LinkedInRegisterUploadResponse> RegisterVideoUpload(OAuthv2AccessToken token, LinkedInRegisterUploadRequest registerUploadRequestObj) { var _linkedInRestClient = new RestClient("https://api.linkedin.com/v2/assets?action=registerUpload") { Authenticator = new JwtAuthenticator(token.AccessToken) }; var request = new RestRequest(Method.POST); request.AddJsonBody(registerUploadRequestObj.ToJson()); try { var response = _linkedInRestClient.Execute(request); if (!response.IsSuccessful) { return(LinkedInAPIResult <LinkedInRegisterUploadResponse> .Fail(response.Content)); } var registerUploadResponse = JsonConvert.DeserializeObject <LinkedInRegisterUploadResponse>(response.Content); return(LinkedInAPIResult <LinkedInRegisterUploadResponse> .Success(registerUploadResponse)); } catch (Exception ex) { return(LinkedInAPIResult <LinkedInRegisterUploadResponse> .Fail(ex.Message)); } }