我正在发出一个包含50个报告post请求的异步批处理请求。
第一个批处理请求返回报告Ids。
第一步
dynamic report_ids = await fb.PostTaskAsync(new
{
batch = batch,
access_token = token
});
接下来,我将获取报告信息,以获取异步状态,以查看它们是否已准备好下载。
第2步
var tListBatchInfo = new List<DataTypes.Request.Batch>();
foreach (var report in report_ids)
{
if (report != null)
tListBatchInfo.Add(new DataTypes.Request.Batch
{
name = !ReferenceEquals(report.report_run_id, null) ? report.report_run_id.ToString() : report.id,
method = "GET",
relative_url = !ReferenceEquals(report.report_run_id, null) ? report.report_run_id.ToString() : report.id,
});
}
dynamic reports_info = await fb.PostTaskAsync(new
//dynamic results = fb.Post(new
{
batch = JsonConvert.SerializeObject(tListBatchInfo),
access_token = token
});
当我在第二步中调用这些I时,第一步中生成的一些I将返回此错误。
消息:不支持get请求。具有ID '6057XXXXXX‘的对象不存在,由于缺少权限而无法加载,或不支持此操作。请阅读https://developers.facebook.com/docs/graph-api上的图形API文档
我知道id是正确的,因为我可以在使用facebook资源管理器中看到它。我做错了什么?
发布于 2017-02-14 13:30:53
这可能是由Facebook的复制滞后造成的。这通常发生在以下情况:将POST请求路由到服务器A,返回报表ID,但对该ID的查询被路由到服务器B,服务器B还不知道报表的存在。
如果您稍后尝试查询ID并使其工作,那么就是滞后。FB对此的官方建议是,在查询报告之前,只需等待一段时间。
https://stackoverflow.com/questions/42206881
复制相似问题