如何通过Instagram Graph API获取私信分享内容的发布者信息?
当你收到Direct Messages webhook里的Share类型附件时,可以通过以下方法获取帖子发布者的user ID和username:
方法1:解析Share URL并调用IG Media API
提取媒体ID
你收到的payload.url(https://lookaside.fbsbx.com/ig_messaging_cdn/....)是Instagram的跳转链接,里面包含原始帖子的媒体ID。你可以:- 直接解析该URL的查询参数,通常会有
ig_post_id字段,其值就是目标帖子的媒体ID; - 或者发起HEAD请求获取该URL的跳转目标,从最终的Instagram帖子URL(如
https://www.instagram.com/p/{post-shortcode}/)中,通过调用GET /{shortcode}?fields=id转换为媒体ID。
- 直接解析该URL的查询参数,通常会有
调用IG Media API获取发布者信息
使用你的页面访问令牌,调用GET /{media-id}端点并指定所需字段:GET /{media-id}?fields=id,owner,username&access_token={page-access-token}返回数据中,
owner.id即为发布者的user ID,username是发布者的用户名。注意:需确保应用拥有
instagram_basic、pages_show_list权限,且访问令牌有效。
方法2:检查Webhook权限与字段完整性
如果webhook返回的Share附件缺少更多元数据,可能是应用权限不足。确认已申请并获批instagram_manage_messages权限,部分场景下完整的Share附件会包含target字段,可能直接携带发布者ID,但该字段返回不稳定,优先推荐方法1。
内容的提问来源于stack exchange,提问作者Guz F
相关产品推荐
相关产品推荐

