错误请求:试图将 ugc 与不属于作者的资产相关联
Bad request: Attempting to associate a ugc with an asset that's not owned by the author
我正在尝试将我的应用程序从 LinkedIn API v1 迁移到 v2。我目前正在考虑将图像(本地)分享到我的个人 LinkedIn 个人资料。
为了注册图像,我提出了以下 POST 请求:至 https://api.linkedin.com/v2/assets?action=registerUpload
{
"registerUploadRequest": {
"recipes": [
"urn:li:digitalmediaRecipe:feedshare-image"
],
"owner": "urn:li:person:9PyfTxBTFY",
"serviceRelationships": [
{
"relationshipType": "OWNER",
"identifier": "urn:li:userGeneratedContent"
}
]
}
}
我收到成功响应:
{
"value": {
"uploadMechanism": {
"com.linkedin.digitalmedia.uploading.MediaUploadHttpRequest": {
"headers": {},
"uploadUrl": "https://api.linkedin.com/mediaUpload/C4D22AQEGOHxBzKUXvw/feedshare-uploadedImage/0?ca=vector_feedshare&cn=uploads&m=AQLhYJm0KOaTCgAAAWhSDplI-Lzlfh7lOsd8D5qBcz0aJ2bf1fwIfnh8ow&app=5212106&sync=0&v=beta&ut=0rKn179ebIA8A1"
}
},
"mediaArtifact": "urn:li:digitalmediaMediaArtifact:(urn:li:digitalmediaAsset:C4D22AQEGOHxBzKUXvw,urn:li:digitalmediaMediaArtifactClass:feedshare-uploadedImage)",
"asset": "urn:li:digitalmediaAsset:C4D22AQEGOHxBzKUXvw"
}
}
我使用返回的 uploadUrl 成功上传了二进制图像:
curl -i --upload-file PATH_TO_FILE --header "Authorization: Bearer TOKEN" 'https://api.linkedin.com/mediaUpload/C4D22AQEGOHxBzKUXvw/feedshare-uploadedImage/0?ca=vector_feedshare&cn=uploads&m=AQLhYJm0KOaTCgAAAWhSDplI-Lzlfh7lOsd8D5qBcz0aJ2bf1fwIfnh8ow&app=5212106&sync=0&v=beta&ut=0rKn179ebIA8A1'
为确认图像已准备好使用,我使用返回的 GET https://api.linkedin.com/v2/assets/C4D22AQEGOHxBzKUXvw 检查了资产的状态
{
"serviceRelationships": [
{
"identifier": "urn:li:userGeneratedContent",
"relationshipType": "OWNER"
}
],
"recipes": [
{
"recipe": "urn:li:digitalmediaRecipe:feedshare-image",
"status": "AVAILABLE"
}
],
"mediaTypeFamily": "STILLIMAGE",
"created": 1547564914979,
"lastModified": 1547564994321,
"id": "C4D22AQEGOHxBzKUXvw",
"status": "ALLOWED"
}
根据文档,我现在可以简单地引用 UGC 中的资产 URN post。
这是测试图像 post 我正在尝试使用 https://api.linkedin.com/v2/ugcPosts 端点
进行分享
{
"author": "urn:li:person:9PyfTxBTFY",
"lifecycleState": "PUBLISHED",
"specificContent": {
"com.linkedin.ugc.ShareContent": {
"shareCommentary": {
"text": "Testing LinkedIn image shares"
},
"shareMediaCategory": "IMAGE",
"media": [
{
"status": "READY",
"description": {
"text": "Some text"
},
"media": "urn:li:digitalmediaAsset:C4D22AQEGOHxBzKUXvw",
"title": {
"text": "Some title"
}
}
]
}
},
"visibility": {
"com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
}
}
但我一直收到错误消息:
{
"message": "Attempting to associate a ugc with an asset that's not owned by the author",
"status": 400
}
上述请求在尝试共享状态更新或 link 附件时完美运行。
我还没有用视频尝试过(类似的方法),因为我认为我会遇到同样的问题。我也没有尝试过作为组织共享,因为我需要先被 LinkedIn 营销开发人员计划接受。
我可以确认 LinkedIn 开发团队已解决此问题。按照与上述相同的步骤操作,只要经过身份验证的用户已授予 w_member_social 权限,它就应该可以正常工作。
在上次请求中,我现在得到 201 Created
响应,其中 header X-RestLi-Id
包含 link 到新的 post urn:li:share:6494126499975700480
.
https://www.linkedin.com/feed/update/urn:li:share:6494126499975700480
P.S。如果您是 re-trying 旧请求/已注册上传,它将无法正常工作,因此请务必尝试使用新资产。我认为错误是在注册上传时出现的。
我正在尝试将我的应用程序从 LinkedIn API v1 迁移到 v2。我目前正在考虑将图像(本地)分享到我的个人 LinkedIn 个人资料。
为了注册图像,我提出了以下 POST 请求:至 https://api.linkedin.com/v2/assets?action=registerUpload
{
"registerUploadRequest": {
"recipes": [
"urn:li:digitalmediaRecipe:feedshare-image"
],
"owner": "urn:li:person:9PyfTxBTFY",
"serviceRelationships": [
{
"relationshipType": "OWNER",
"identifier": "urn:li:userGeneratedContent"
}
]
}
}
我收到成功响应:
{
"value": {
"uploadMechanism": {
"com.linkedin.digitalmedia.uploading.MediaUploadHttpRequest": {
"headers": {},
"uploadUrl": "https://api.linkedin.com/mediaUpload/C4D22AQEGOHxBzKUXvw/feedshare-uploadedImage/0?ca=vector_feedshare&cn=uploads&m=AQLhYJm0KOaTCgAAAWhSDplI-Lzlfh7lOsd8D5qBcz0aJ2bf1fwIfnh8ow&app=5212106&sync=0&v=beta&ut=0rKn179ebIA8A1"
}
},
"mediaArtifact": "urn:li:digitalmediaMediaArtifact:(urn:li:digitalmediaAsset:C4D22AQEGOHxBzKUXvw,urn:li:digitalmediaMediaArtifactClass:feedshare-uploadedImage)",
"asset": "urn:li:digitalmediaAsset:C4D22AQEGOHxBzKUXvw"
}
}
我使用返回的 uploadUrl 成功上传了二进制图像:
curl -i --upload-file PATH_TO_FILE --header "Authorization: Bearer TOKEN" 'https://api.linkedin.com/mediaUpload/C4D22AQEGOHxBzKUXvw/feedshare-uploadedImage/0?ca=vector_feedshare&cn=uploads&m=AQLhYJm0KOaTCgAAAWhSDplI-Lzlfh7lOsd8D5qBcz0aJ2bf1fwIfnh8ow&app=5212106&sync=0&v=beta&ut=0rKn179ebIA8A1'
为确认图像已准备好使用,我使用返回的 GET https://api.linkedin.com/v2/assets/C4D22AQEGOHxBzKUXvw 检查了资产的状态
{
"serviceRelationships": [
{
"identifier": "urn:li:userGeneratedContent",
"relationshipType": "OWNER"
}
],
"recipes": [
{
"recipe": "urn:li:digitalmediaRecipe:feedshare-image",
"status": "AVAILABLE"
}
],
"mediaTypeFamily": "STILLIMAGE",
"created": 1547564914979,
"lastModified": 1547564994321,
"id": "C4D22AQEGOHxBzKUXvw",
"status": "ALLOWED"
}
根据文档,我现在可以简单地引用 UGC 中的资产 URN post。
这是测试图像 post 我正在尝试使用 https://api.linkedin.com/v2/ugcPosts 端点
进行分享{
"author": "urn:li:person:9PyfTxBTFY",
"lifecycleState": "PUBLISHED",
"specificContent": {
"com.linkedin.ugc.ShareContent": {
"shareCommentary": {
"text": "Testing LinkedIn image shares"
},
"shareMediaCategory": "IMAGE",
"media": [
{
"status": "READY",
"description": {
"text": "Some text"
},
"media": "urn:li:digitalmediaAsset:C4D22AQEGOHxBzKUXvw",
"title": {
"text": "Some title"
}
}
]
}
},
"visibility": {
"com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
}
}
但我一直收到错误消息:
{
"message": "Attempting to associate a ugc with an asset that's not owned by the author",
"status": 400
}
上述请求在尝试共享状态更新或 link 附件时完美运行。
我还没有用视频尝试过(类似的方法),因为我认为我会遇到同样的问题。我也没有尝试过作为组织共享,因为我需要先被 LinkedIn 营销开发人员计划接受。
我可以确认 LinkedIn 开发团队已解决此问题。按照与上述相同的步骤操作,只要经过身份验证的用户已授予 w_member_social 权限,它就应该可以正常工作。
在上次请求中,我现在得到 201 Created
响应,其中 header X-RestLi-Id
包含 link 到新的 post urn:li:share:6494126499975700480
.
https://www.linkedin.com/feed/update/urn:li:share:6494126499975700480
P.S。如果您是 re-trying 旧请求/已注册上传,它将无法正常工作,因此请务必尝试使用新资产。我认为错误是在注册上传时出现的。