如何从Facebook plugin_comment webhook获取评论插件的href属性?
我之前也碰到过类似的困扰,翻遍了Facebook的Graph API文档和webhook payload说明,确实没找到直接从评论webhook里拿到插件href属性的方法——官方返回的评论对象里根本就没有这个字段,哪怕你调用GET /{comment-id}接口,也只能拿到评论的基本信息、关联的object_id,但没有直接指向评论来源页面的URL。
不过可以试试这几个替代方案,帮你确定评论来源并通知内容所有者:
通过
object_id反向查询:评论里的object_id其实对应Facebook为评论插件生成的一个专属对象。你可以调用GET /{object-id}接口,尝试获取这个对象的link字段——这个字段通常就对应你当初嵌入插件时设置的href值。但要注意权限问题:如果内容所有者的页面是公开的,或者你的应用有对应的访问权限,才能拿到这个数据;如果是私密内容,这条路可能走不通。利用自定义标识映射:如果能和内容所有者协商,让他们在嵌入评论插件的
href里加上一个唯一标识参数(比如https://their-site.com/post/456?fb_source=owner_123),你就可以在自己的系统里维护这个参数和内容所有者的对应关系。不过这个前提是对方愿意配合修改嵌入代码,对你来说可能不太可控。尝试解析评论的关联附件:有些情况下,评论的
attachment字段里会包含评论来源页面的链接(当Facebook抓取到页面元数据时),但这个不是稳定的字段,很多时候可能为空,只能作为补充手段。
另外你提到的moderation tool,确实能看到每个评论对应的href,但因为内容所有者不属于你们公司,没有权限使用这个工具,所以这个途径确实行不通。
总的来说,目前没有官方直接支持的方法从webhook里获取href,最靠谱的还是通过object_id反向查询Graph API,虽然有权限限制,但这是最接近官方方案的路径了。
内容的提问来源于stack exchange,提问作者Cesar Alberto Díaz Hermosillo

