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

使用LinkedIn Member Data Portability API获取UGC帖子遇问题求助

解决LinkedIn Member Data Portability API获取个人最近UGC帖子的问题

问题根源分析

  1. 参数名称错误:你使用了单数resourceName,但LinkedIn API要求用复数resourceNames(数组类型)指定过滤的资源类型,这导致过滤规则失效,返回了点赞、邀请等无关内容。
  2. 时间格式错误:startTime需要传入ISO 8601格式的时间字符串(如2024-05-01T00:00:00Z),而非时间戳,这是数据返回不及时的核心原因。
  3. 循环调用触发限制:盲目循环请求会触发LinkedIn的API速率限制,需要通过分页参数合理控制请求次数。

修正后的代码实现

import json
import requests
from datetime import datetime, timedelta

access_token = "_secret_"
api_url = "https://api.linkedin.com/rest/memberChangeLogs?q=memberAndApplication"

headers = {
    "LinkedIn-Version": "202312",
    "Authorization": f"Bearer {access_token}",
    "Content-Type": "application/json"
}

# 生成30天前的ISO 8601格式时间,用于过滤最近的内容
start_time = (datetime.utcnow() - timedelta(days=30)).isoformat() + "Z"

payload = {
    "count": 10,  # 适当调大count减少分页次数,后续从中筛选UGC帖子
    "resourceNames": ["ugcPosts"],  # 正确的复数参数名,数组类型
    "sortBy": "LAST_MODIFIED",
    "startTime": start_time
}

response = requests.get(api_url, headers=headers, params=payload)
response.raise_for_status()  # 捕获API请求错误
data = response.json()

# 提取纯UGC帖子数据,确保只保留目标内容
ugc_posts = [item for item in data.get("elements", []) if item.get("resourceType") == "ugcPosts"]
# 取最近5条
recent_5_posts = ugc_posts[:5]

print(json.dumps(recent_5_posts, indent=2))

额外优化建议

  • 分页处理:如果一次请求返回的UGC帖子不足5条,可使用响应中paging字段的start参数进行分页(例如payload["start"] = 10),但需注意:
    • 每次分页请求间隔至少1秒,避免触发速率限制
    • 最多请求3-5次,防止过度调用
  • 时间范围调整:根据你的发帖频率调整timedelta(days=30)的天数,确保覆盖足够的时间范围但不会返回过多旧数据
  • 错误处理:添加更多异常捕获逻辑(如网络错误、权限错误),提升脚本稳定性

内容的提问来源于stack exchange,提问作者Under The Ground Portugal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 14:03:34