我正在尝试将我的应用程序从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。
这是我尝试使用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
}
在尝试共享状态更新或链接附件时,上述请求非常有效。
我还没有尝试过使用视频(类似的方法),因为我认为我会遇到同样的问题。我也没有尝试过共享组织,因为我需要先被LinkedIn营销开发人员计划接受。
答案 0 :(得分:1)
我可以确认此问题已由LinkedIn开发人员小组解决。只要经过身份验证的用户已授予w_member_social权限,请按照上述相同的步骤操作,并且应该可以正常工作。
在上一个请求中,我现在收到201 Created
响应,标题为X-RestLi-Id
,其中包含指向新帖子urn:li:share:6494126499975700480
的链接。
https://www.linkedin.com/feed/update/urn:li:share:6494126499975700480
P.S。如果您要重试旧的请求/已注册的上传,则此操作将无效,因此请确保您尝试使用新资产。我相信该错误是在注册上传内容时出现的。