我试图通过这个请求获得有机帖子的指标:
https://api.linkedin.com/rest/organizationalEntityShareStatistics?q=organizationalEntity&organizationalEntity=urn%3Ali%3Aorganization%3A24445&ugcPosts[0]=urn%3Ali%3AugcPost%3A7008096555
但是我得到了这个错误:
"serviceErrorCode": 100,
"code": "ACCESS_DENIED",
"message": "Unpermitted fields present in PARAMETER: Data Processing Exception while processing fields [/ugcPosts[0]]"
任何想法?
更新答案
我从LinkedIn的支持那里得到了一个答案,至少让我走上了正确的轨道:他们让我检查我的请求是否有正确的标题。事实证明,organizationalEntityShareStatistics调用不喜欢使用"x - restli - protocol - version"来调用。HTTP报头当拥有"股份"时;在请求中像往常一样,开发人员文档从来没有告诉你什么时候设置哪个头文件,什么时候不设置——而且整个"有多个版本的API版本"。
对我来说,这是一个有效的请求:
GET https://api.linkedin.com/rest/organizationalEntityShareStatistics?q=organizationalEntity&organizationalEntity=urn%3Ali%3Aorganization%3A<org-id>&shares[0]=urn%3Ali%3Ashare%3A<share-id>
Authorization: Bearer <token>
Accept: */*
Accept-Encoding: gzip, deflate, br
LinkedIn-Version: 202211
确保查询字符串中的urn是urlencoded (urn%3Ali%3A...
)。对于参数名(shares[0]
),您可以使用编码或未编码-两者都可以。
只要确保不是设置X-Restli-Protocol-Version
标头
原始回答
注意下面的只是一个短期的临时解决方法因为未版本的API已被弃用,并将在2023年2月底日落-但截至今天,您仍然可以使用旧的API调用:
https://api.linkedin.com/v2/organizationalEntityShareStatistics?q=organizationalEntity&organizationalEntity=urn%3Ali%3Aorganization%3A24445&shares%5B0%5D=urn%3Ali%3AugcPost%3A7008096555
您必须做的其他更改:
- 注意有"/v2/"而不是"/rest/"在URL
- 不设置
LinkedIn-Version
请求头 - 不设置
X-Restli-Protocol-Version
请求头 - 如果要查询特定的时间范围,则使用新的"versioned"的语法。API看起来像这样的
timeIntervals=(timeGranularityType:DAY,timeRange:(start:1667257200000,end:1673297200000))
,但在旧的API版本中,时间范围必须去三个独立的查询参数,如timeIntervals.timeGranularityType=DAY&timeIntervals.timeRange.start=1667257200000&timeIntervals.timeRange.end=1673297200000
我将更新这个答案,只要我弄清楚我必须做什么才能得到新的API版本的工作。到目前为止,我得到了与您看到的完全相同的ACCESS_DENIED错误消息。