public async Task <string> UploadImage(UserAuthorization user, byte[] imageData, string ownerUrn) { try { var asset = new Asset.RegisterUploadRequest() { RegisterUploadRequestData = new Asset.RegisterUploadRequestData() { Owner = ownerUrn, Recipes = new List <string>() { "urn:li:digitalmediaRecipe:feedshare-image" }, ServiceRelationships = new List <Asset.ServiceRelationship>() { new ServiceRelationship() { Identifier = "urn:li:userGeneratedContent", RelationshipType = "OWNER" } } } }; var requestAsset = await api.Asset.RegisterUploadAsync(user, asset); var imageUrn = requestAsset.Value.Asset; var postAsset = await api.Asset.UploadImageAssetAsync(user, requestAsset.Value.UploadMechanism.ComLinkedinDigitalmediaUploadingMediaUploadHttpRequest.UploadUrl, new Asset.UploadAssetRequest() { RequestHeaders = new Asset.ComLinkedinDigitalmediaUploadingMediaUploadHttpRequest() { Headers = requestAsset.Value.UploadMechanism.ComLinkedinDigitalmediaUploadingMediaUploadHttpRequest.Headers, UploadUrl = requestAsset.Value.UploadMechanism.ComLinkedinDigitalmediaUploadingMediaUploadHttpRequest.UploadUrl, }, Data = imageData }); return(imageUrn); } catch (LinkedInApiException ex) { errors.Add(ex.ToString()); return(null); } catch (Exception ex) { errors.Add(ex.ToString()); return(null); } }
private static async Task <RegisterUploadResult> RequestVideoUpload(LinkedInApi api, UserAuthorization user, string ownerURN, long fileSize) { var asset = new Asset.RegisterUploadRequest() { RegisterUploadRequestData = new Asset.RegisterUploadRequestData() { SupportedUploadMechanism = new List <string>() { "SINGLE_REQUEST_UPLOAD" }, Owner = ownerURN, Recipes = new List <string>() { "urn:li:digitalmediaRecipe:feedshare-video" }, ServiceRelationships = new List <Asset.ServiceRelationship>() { new Asset.ServiceRelationship() { Identifier = "urn:li:userGeneratedContent", RelationshipType = "OWNER" } } } }; if (fileSize > VIDEO_MAX_BYTE_SIZE) { asset.RegisterUploadRequestData.FileSize = fileSize; asset.RegisterUploadRequestData.SupportedUploadMechanism = new List <string>() { "MULTIPART_UPLOAD" }; } var requestAsset = await api.Asset.RegisterUploadAsync(user, asset); return(requestAsset); }