Juan Delgado
Juan Delgado

Reputation: 1

Error trying to use an uploaded image in Linkedin

I'm trying to use the Linkedin API to share a post with an image. I've followed all the steps in the documentation:

https://learn.microsoft.com/es-es/linkedin/consumer/integrations/self-serve/share-on-linkedin?context=linkedin/consumer/context#share-media

First, I register the upload with a POST to https://api.linkedin.com/v2/assets?action=registerUpload and this body:

{
    "registerUploadRequest": {
        "recipes": [
            "urn:li:digitalmediaRecipe:feedshare-image"
        ],
        "owner": "urn:li:person:{{owner_ID}}",
        "serviceRelationships": [
            {
                "relationshipType": "OWNER",
                "identifier": "urn:li:userGeneratedContent"
            }
        ]
    }
}

I get this response:

{
    "value": {
        "uploadMechanism": {
            "com.linkedin.digitalmedia.uploading.MediaUploadHttpRequest": {
                "uploadUrl": "https://api.linkedin.com/mediaUpload/C4E22AQF6AS1WhrD1lw/feedshare-uploadedImage/0?ca=vector_feedshare&cn=uploads&m=AQKLg3lSJnswAgAAAXSgLwWp6iAPzjh6E_5XQh8QuP1Aucf_j9bgW3m5vQ&app=74851466&sync=0&v=beta&ut=2h9vtCSeuP0ps1",
                "headers": {
                    "media-type-family": "STILLIMAGE"
                }
            }
        },
        "asset": "urn:li:digitalmediaAsset:C4E22AQF6AS1WhrD1lw",
        "mediaArtifact": "urn:li:digitalmediaMediaArtifact:(urn:li:digitalmediaAsset:C4E22AQF6AS1WhrD1lw,urn:li:digitalmediaMediaArtifactClass:feedshare-uploadedImage)"
    }
}

Then I use the uploadURL to make another post with the image as body, and get a 201 Created response.

I've checked the upload with a GET https://api.linkedin.com/v2/assets/C4E22AQF6AS1WhrD1lw and it has been uploaded correctly:

{
    "recipes": [
        {
            "recipe": "urn:li:digitalmediaRecipe:feedshare-image",
            "status": "AVAILABLE"
        }
    ],
    "serviceRelationships": [
        {
            "relationshipType": "OWNER",
            "identifier": "urn:li:userGeneratedContent"
        }
    ],
    "mediaTypeFamily": "STILLIMAGE",
    "created": 1600415270252,
    "id": "C4E22AQF6AS1WhrD1lw",
    "lastModified": 1600415345915,
    "status": "ALLOWED"
}

When I try to share a post referencing this image I get this error:

{"message":"com.linkedin.restli.server.RestLiServiceException [HTTP Status:401]: com.linkedin.content.common.ResponseException: Writers of type person are not authorized to modify UserGeneratedContent.","status":401}

I'm sending a POST to this URL https://api.linkedin.com/v2/ugcPosts with this body:

{
    "author": "urn:li:person:{{person_id}}",
    "lifecycleState": "PUBLISHED",
    "specificContent": {
        "com.linkedin.ugc.ShareContent": {
            "shareCommentary": {
                "text": "Feeling inspired after meeting so many talented individuals at this year's conference. #talentconnect"
            },
            "shareMediaCategory": "IMAGE",
            "media": [
                {
                    "status": "READY",
                    "description": {
                        "text": ""
                    },
                    "media": "urn:li:digitalmediaAsset:C4E22AQF6AS1WhrD1lw",
                    "title": {
                        "text": ""
                    }
                }
            ]
        }
    },
    "visibility": {
        "com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
    }
}

I can share an only text post without trouble, look at my person ID, even like a post, but I'm stuck with this.

Can anyone tell me what am I doing wrong?

Upvotes: 0

Views: 356

Answers (1)

Juan Delgado
Juan Delgado

Reputation: 1

Solved. I had an error in the person_id variable, so I was trying to create a post with the wrong id.

Upvotes: 0

Related Questions