【发布时间】:2012-01-31 14:42:54
【问题描述】:
我正在尝试从 facebook 获取一些我拥有管理员权限的页面的见解。我能够使用图形 API 获得正确的数据,但是当我尝试使用 FQL 时,我得到一个空的 JSON 对象。知道可能是什么问题吗?
我认为查询是正确的,因为我没有收到任何 400/500 错误。我还认为权限是正确的,因为我使用与图形 API 解决方案相同的框架并且它工作正常。也许您需要额外的权限才能使用 FQL?我有 manage_pages 和 read_insights。
我正在对来自 facebook 文档的模板 URI 进行基本的文本替换。
编辑:我认为问题可能是我实际上没有 read_insights 权限。我确实有 manage_pages 权限。也许这解释了为什么我可以通过 Graph API 而不是 FQL 访问洞察力?
图形 API 查询:
string insight_str = "https://graph.facebook.com/APP_ID/insights/FIELD/FREQ?access_token=ACCESS_TOKEN";
string url = insight_str.Replace("FIELD", "page_impressions").Replace("FREQ","day").Replace("APP_ID", accounts[i].id).Replace("ACCESS_TOKEN", accounts[i].access_token);
https://graph.facebook.com/xxxxxxxx/insights/page_impressions/day?access_token=xxxxxxxx
Graph API 解析 JSON 结果:
page_impressions
2011-12-28 412
2011-12-29 971
2011-12-30 373
FQL 查询:
string query_str = "https://graph.facebook.com/fql?q=QUERY&access_token=ACCESS_TOKEN";
string query = "SELECT+metric,value+FROM+insights+WHERE+object_id=APP_ID+AND+metric='FIELD'+AND+end_time=1322722800+AND+period=86400";
string url = query_str.Replace("QUERY",query).Replace("FIELD","page_impressions").Replace("APP_ID",accounts[i].id).Replace("ACCESS_TOKEN",accounts[i].access_token);
https://graph.facebook.com/fql?q=SELECT+metric,value+FROM+insights+WHERE+object_id=xxxxxxxx+AND+metric='page_impressions'+AND+end_time=1322722800+AND+period=86400&access_token=xxxxxxxx
FQL JSON 结果:
{"data":[]}
【问题讨论】:
标签: facebook facebook-graph-api facebook-fql