无Object ID时,如何查询Facebook Graph API节点/对象的可用字段?
先纠正一个常见误解
只要你拥有任意一个目标类型的对象ID(哪怕该对象本身缺少某些字段),调用带metadata=1参数的Graph API请求,都会返回该类型的所有可用字段,而非仅该对象实际存在的字段。比如你的ID为12345的userleadgeninfo对象没有retailer_item_id,但用https://graph.facebook.com/v12.0/12345?access_token={your-token}&metadata=1请求,依然会列出userleadgeninfo类型的全部字段,包括retailer_item_id。
无任何对象ID时的查询方法
如果确实没有该类型的任何对象ID,可以通过以下两种方式查询:
使用Graph API Explorer
打开Graph API Explorer,选择对应的API版本,在请求输入框直接输入/schema/{object-type}(替换{object-type}为你要查询的节点类型,比如userleadgeninfo),提交请求后就能看到该类型的所有可用字段、权限要求、关联节点等元数据信息。直接调用Schema API
发送GET请求:https://graph.facebook.com/v{version}/schema/{object-type}?access_token={your-access-token}其中
{version}替换为你使用的API版本(如v12.0),{object-type}为目标节点类型,{your-access-token}为拥有对应权限的有效令牌。该请求无需对象ID,直接返回目标类型的完整元数据。
注意事项
调用Schema API需要你的access token具备对应节点类型的访问权限,比如查询userleadgeninfo需要leadgen_read权限。
内容的提问来源于stack exchange,提问作者Scott Halgrim

