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);
            }
        }
Ejemplo n.º 2
0
        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);
        }