从官方Facebook docs,你可以得到一个简单的声明,你可以获取 3种类型的fitness
活动:
fitness.bikes
fitness.walks
fitness.runs
那很好但是它们都有相同的字段,除了graphPath
之外,没有可能去除哪一个被取出。
我需要所有这些数据,理想情况下我想一次性获取所有数据但是如果我创建这样的方法:
let walkRequest = FBSDKGraphRequest(graphPath: "me/fitness.walks", parameters: nil)
let runRequest = FBSDKGraphRequest(graphPath: "me/fitness.runs", parameters: nil)
let bikeRequest = FBSDKGraphRequest(graphPath: "me/fitness.bikes", parameters: nil)
var connection = FBSDKGraphRequestConnection()
connection.addRequest(walkRequest) { (connection, result, error) -> Void
//
}
connection.addRequest(runRequest) { (connection, result, error) -> Void
//
}
connection.addRequest(bikeRequest) { (connection, result, error) -> Void
//
}
connection.start()
我得到三个不同的callbacs,返回相同的数据,不知怎的,我必须将它合并到一个结构中,以便我可以将它发送到后端。
我想得到一个类似于Dictionary
的结构:
[
"walks": [ JSON ],
"runs": [JSON],
"bikes": [ JSON ]
]
是否可以创建这样的批量请求?或者我必须手动使用3个不同的FBSDKGraphRequest
并等待它们完成?
答案 0 :(得分:1)
您应该可以通过所谓的字段扩展来实现这一目标:
GET /me?fields=fitness.bikes,fitness.walks,fitness.runs
由于我的帐户中没有此类数据,我无法测试结果,但查询运行顺利。