我正在从使用
https://api.linkedin.com/v2/ugcPosts
迁移到 https://api.linkedin.com/rest/posts
。
在组织中创建帖子的 UgcPosts API 调用有效:
POST https://api.linkedin.com/v2/ugcPosts
Header: X-Restli-Protocol-Version: 2.0.0
{
"author": "urn:li:organization:73873366",
"lifecycleState": "PUBLISHED",
"specificContent": {
"com.linkedin.ugc.ShareContent": {
"shareCommentary": {
"text": "Share commentary text."
},
"shareMediaCategory": "IMAGE",
"media": [
{
"status": "READY",
"description": {
"text": "Description text."
},
"media": "urn:li:digitalmediaAsset:D4D22AQHZkwZQ-pS_AQ",
"title": {
"text": "Title text."
}
}
]
}
},
"visibility": {
"com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
}
}
回复是
201 Created
给我{ "id": "urn:li:share:7069267959319339009" }
。
但是,如果我使用新的帖子 API,它会抱怨(我正在遵循 官方文档 Single Post Creation Sample Request:
POST https://api.linkedin.com/rest/posts
Header: X-Restli-Protocol-Version: 2.0.0
Header: LinkedIn-Version: 202305
{
"author": "urn:li:organization:73873366",
"commentary": "My cool image.",
"visibility": "PUBLIC",
"distribution": {
"feedDistribution": "MAIN_FEED",
"targetEntities": [],
"thirdPartyDistributionChannels": []
},
"content": {
"media": {
"title":"Name of the image",
"id": "urn:li:image:D4D22AQHZkwZQ-pS_AQ"
}
},
"lifecycleState": "PUBLISHED",
"isReshareDisabledByAuthor": false
}
我得到的回应是
400 Bad Request
:
{
"message": "Organization permissions must be used when using organization as author",
"status": 400
}
通过阅读文档,我无法弄清楚需要什么步骤。我尝试使用
/rest/organizationAuthorizations
端点获取信息,如LinkedIn文档组织授权中所述,但这给我带来了问题。
我正在尝试 get-organization-authorization-information,如文档中所述:
GET https://api.linkedin.com/rest/organizationAuthorizations/(impersonator:urn%3Ali%3Aperson%3ASnbx29l-ix,organization:urn%3Ali%3Aorganization%3A73873366,action:(organizationRoleAuthorizationAction:(actionType:ADMINISTRATOR_READ)))
Header: X-Restli-Protocol-Version: 2.0.0
Header: LinkedIn-Version: 202305
这会产生
400 Bad Request
:
{
"status": 400,
"code": "ILLEGAL_ARGUMENT",
"message": "Syntax exception in path variables"
}
我认为文档中有问题。
这些是我正在使用的令牌的权限:
POST https://www.linkedin.com/oauth/v2/introspectToken
Header: X-Restli-Protocol-Version: 2.0.0
{ "token": "...", "client_id": "...", "secret": "..."}
回应:
{
"active": true,
"client_id": "...",
"authorized_at": 1685445569,
"created_at": 1685445569,
"status": "active",
"expires_at": 1690629570,
"scope": "r_emailaddress,r_liteprofile,r_member_live,r_organization_admin,r_organization_live,w_member_live,w_member_social,w_organization_live",
"auth_type": "3L"
}
我的演唱会总结:
Organization permissions must be used when using organization as author
是什么意思?我需要传递一个单独的令牌吗?我正在玩的用户对我正在使用的组织具有管理员访问权限。我是否应该使用 LinkedIn UI 调整组织权限?/v2/ -> /rest/
迁移。会是日落吗理论上,如果您包含在 OAuth2 范围中
w_organization_social
,您应该能够使用新 API 创建帖子,就像使用未版本化 API 一样,这意味着无需任何新权限。
也就是说,我遇到了类似的问题,在我自己的帐户上,使用启用了所有范围的新令牌,
rest/posts
端点不断出错。
这可能是因为唯一
/v2
API 将于 6 月 30 日停止以支持/rest
(版本化) API 是营销 API。
如果您发帖,您正在使用 LinkedIn API 上的共享,这些 API 的
/rest
形式似乎功能不全。这也意味着您不需要过渡到新的 API。
无论如何,我尚未测试的一种“可能”解决方法可能是添加每个组织范围(rw_organization_admin
、
r_organization_social
、w_organization_social
、r_organization_admin
)。我认为可能发生的情况是,如果您没有 r_organization_admin
权限,则无法创建帖子。不过,这只是一个假设。
我会在 ZenDesk 上向他们的支持人员发送消息,看看他们是否有更好的答案。 TL;DR:不,消费者无版本 API 不会很快消失。我在个人资料上遇到了类似的问题。