You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过LinkedIn API获取个人主页全部历史帖子并解决/share接口报错问题

问题根因

你添加了X-HTTP-Method-Override: BATCH_GET请求头,触发了LinkedIn的RESTli协议隧道请求校验规则,这类请求要求参数必须以application/x-www-form-urlencoded格式放在请求体中,你当前把参数全部拼接在URL查询串中,没有符合要求的请求体,所以触发400报错。

解决方案

查询单个人的所有动态不需要用到BATCH_GET请求,直接用标准GET请求即可,修改代码如下:

$url = "https://api.linkedin.com/v2/shares?q=owners&owners=urn:li:person:".$linked_profile['id'];
// 不需要X-HTTP-Method-Override和额外的Content-Type头,GET请求不需要指定Content-Type
$headers = [
    'X-Restli-Protocol-Version: 2.0.0',
    'Authorization: Bearer ' . $_SESSION['linkedin_access_token']
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
// 明确指定请求方法为GET,避免cURL误判
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
$result = curl_exec($ch);
curl_close($ch); 
$result = json_decode($result, true);

补充注意事项

  • 确保你的应用已经申请了对应权限:拉取个人账号动态需要r_member_social权限,拉取组织账号动态需要r_organization_social权限,权限审核通过后接口才能正常返回数据。
  • 如果需要直接返回帖子的图片、视频等媒体内容,可以在请求URL后追加投影参数,就不用二次调用接口查询媒体信息,参数示例:&projection=(elements*(id,created,lastModified,owner,text,content(*,media(*))))。
  • 如果你确实需要批量查询多个主体的动态,才需要使用BATCH_GET,此时需要将请求方法改为POST,所有查询参数放到application/x-www-form-urlencoded格式的请求体中,不能拼接在URL上。

内容的提问来源于stack exchange,提问作者Nikunj Munjani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 16:15:00