【问题标题】:How to post (not share) an Article via LinkedIn API v2 / UGC Post API如何通过 LinkedIn API v2 / UGC Post API 发布(不分享)文章
【发布时间】:2019-09-22 17:04:23
【问题描述】:

用例

作为授权的 LinkedIn 用户
我想通过 LinkedIn API 发布文章
所以我的外部服务可以代表我创建内容

说明

我想通过 LinkedIn API v2 在 LinkedIn 上发布(而不是分享)一篇文章。

到目前为止,我已成功共享文本、图像和文章 URL。但是,创建一篇文章(Publishing Article),我并不完全了解如何做到这一点。

有 Article API,但该 API 只有检索已发布文章的方法。在文档中,UGC Post API 被引用为发布机制。

在 UGC Post API 的文档中,我只能找到用于共享文本、图像和文章 URL 的文档。我完全错过了文章创作。

在 LinkedIn 网站上发布此类文章的手动方式是转到 LinkedIn Publishinghttps://www.linkedin.com/post/new 并通过可视化编辑器创建内容。

但并非所有用户都可以发布。如果它可供一个用户使用是由 LinkedIn 做出的决定——可能是自动的。这在文档here 中有说明。

目前并非所有成员都可以使用发布功能,并且发布的访问权限不受您的帐户类型的决定或影响。免费和高级帐户都可以拥有发布权限。拥有高级帐户并不能保证拥有发布权限。

问题

  • 甚至可以使用 LinkedIn API v2 发布文章吗?
  • 如何通过 LinkedIn API v2 发布文章?
  • 除了为 UGC Post API (w_member_social) 指定的权限外,是否还需要其他权限?

现有的失败请求

// request
{
    method: 'POST',
    headers: {
        Authorization: `Bearer ${accessToken}`,
        'X-Restli-Protocol-Version': '2.0.0'
    },
    uri: `${LINKEDIN_API_URL}/v2/ugcPosts`,
    json: true,
    body: {
        author: `urn:li:person:${linkedinUserId}`,
        lifecycleState: 'PUBLISHED',
        specificContent: {
            'com.linkedin.ugc.ShareContent': {
                shareCommentary: {
                    text: `<strong>Let's hope this is possible</strong><br/>it would be bad if not<br/>said by me at ${new Date()}`
                },
                shareMediaCategory: 'URN_REFERENCE'
            }
        },
        visibility: {
            'com.linkedin.ugc.MemberNetworkVisibility': 'PUBLIC'
        }
    }
}

// response
{
    statusCode: 500,
    body: {
        message: 'INTERNAL SERVER ERROR',
        status: 500
    }
}

【问题讨论】:

  • 目前无法通过 LinkedIn API 发布文章。
  • 所以基本上你可以阅读和删除Publishing Articles,但你不能创建它们。这对 API 开发路线图有何意义?无论如何,LinkedIn 对如何正确混淆开发人员有自己的想法(发布文章、通过 UGC Post API 发布视频、折旧权限和当前权限的混合......)
  • @FlorianSchaeffler 就其规模而言,LinkedIn 绝对是我在业内经历过的最差的开发人员支持。认为自己非常幸运,Christopher Ou 回答了您的问题! (认真的)

标签: linkedin linkedin-api ugc


【解决方案1】:

文档是here!

payload应该是这样的:

{"content": {
    "contentEntities": [
        {
            "entityLocation": "https://www.example.com/content.html",
            "thumbnails": [
                {
                    "resolvedUrl": "https://www.example.com/image.jpg"
                }
            ]
        }
    ],
    "title": "Test Share with Content"
},
"distribution": {
    "linkedInDistributionTarget": {}
},
"owner": "urn:li:person:324_kGGaLE",
"subject": "Test Share Subject",
"text": {
    "text": "Test Share!"
}}

【讨论】:

    【解决方案2】:
    // request
    {
        method: 'POST',
        headers: {
            Authorization: `Bearer ${accessToken}`,
            'X-Restli-Protocol-Version': '2.0.0'
        },
        uri: `${LINKEDIN_API_URL}/v2/ugcPosts`,
        json: true,
        body: {
            author: `urn:li:person:${linkedinUserId}`,
            lifecycleState: 'PUBLISHED',
            specificContent: {
                'com.linkedin.ugc.ShareContent': {
                    shareCommentary: {
                        text: `<strong>Let's hope this is possible</strong><br/>it would be bad if not<br/>said by me at ${new Date()}`
                    },
                    shareMediaCategory: 'NONE'
                }
            },
            visibility: {
                'com.linkedin.ugc.MemberNetworkVisibility': 'PUBLIC'
            }
        }
    }
    

    【讨论】:

    • 你能解释一下你的答案吗?看起来像问题中发布的现有失败请求。
    • 请添加有用的文本,而不仅仅是源代码。人们想了解为什么源代码可以解决他们的问题。
    猜你喜欢
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 2020-05-01
    • 2021-11-21
    • 2022-06-22
    • 1970-01-01
    • 2021-01-15
    • 2023-01-25
    相关资源
    最近更新 更多