ios - Facebook iOS SDK 和 Swift - 如何创建相关批量请求?

标签 ios swift facebook-graph-api

当第二个(子)请求依赖于第一个(父)请求时,我试图弄清楚如何编写 FB Graph API 请求(FB SDK 4.0 和 Swift)。具体来说,我想获取用户的相册和每个相册的封面照片。

  1. me/albums?fields=name,cover_photo <-- 获取用户相册请求

  2. /888474748 <-- 获取封面照片请求

文档对此和 FBSDKGraphRequestConnection 的 API 文档非常模糊。提到方法 addRequest:completionHandler:batchParameters: 可以接受“name”和“depends_on”等参数。这似乎是我正在寻找的方法,但我可以找到它在 Obj-C 或 Swift 中使用的示例。

它应该看起来像这样吗?谢谢!

 let albumRequest = FBSDKGraphRequest(graphPath: "me/albums?fields=name,cover_photo", parameters: nil)
    let albumCoverRequest = FBSDKGraphRequest(graphPath: "cover_photo_id", parameters: nil) //what should this look like? jsonpath?
    let graphConnection = FBSDKGraphRequestConnection()
    graphConnection.addRequest(albumRequest, completionHandler: { (connection:FBSDKGraphRequestConnection!, result:AnyObject!, error:NSError!) -> Void in
        if(error != nil){
            println(error)
        }else{

        }
        },batchParameters: ["name" : "albums"])

    graphConnection.addRequest(albumRequest, completionHandler: { (connection:FBSDKGraphRequestConnection!, result:AnyObject!, error:NSError!) -> Void in
        if(error != nil){
            println(error)
        }else{

        }
        },batchParameters: ["depends_on" : "albums"]) //should this be some jsonpath expression?

最佳答案

明白了。

let albumRequest = FBSDKGraphRequest(graphPath: "me/albums?fields=name,cover_photo", parameters: nil)
    let albumCoverRequest = FBSDKGraphRequest(graphPath: "?ids={result=albums:$.data.*.cover_photo}", parameters: nil) // use jsonpath syntax to "inject" parent results into "child" request
    let graphConnection = FBSDKGraphRequestConnection()
    graphConnection.addRequest(albumRequest, completionHandler: { (connection:FBSDKGraphRequestConnection!, result:AnyObject!, error:NSError!) -> Void in
        if(error != nil){
            println(error)
        }else{
            println(result)
        }
        },batchParameters: ["name" : "albums"]) //Set "parent" batch alias

    graphConnection.addRequest(albumCoverRequest, completionHandler: { (connection:FBSDKGraphRequestConnection!, result:AnyObject!, error:NSError!) -> Void in
        if(error != nil){
            println(error)
        }else{
            println(result)
        }
        },batchParameters: ["depends_on" : "albums"]) //depend on parent batch alias
    graphConnection.start()

关于ios - Facebook iOS SDK 和 Swift - 如何创建相关批量请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30044110/

相关文章:

iphone - 切换到 tabBarController 但没有标签栏

ios - PFQueryCollectionViewController 中首次加载时未出现图像

ios - NSNotification 被解雇了不止一次?

ios - QuickLook 不显示仅以文件名作为标题的 pdf 灰色屏幕

facebook - 用户如何评价Facebook Apps?

ios - 我如何知道特定应用程序是否安装在用户设备上?

swift - 如何在 MacOS 上为 VoiceOver 在 Swift 中对 UI 元素进行分组?

ios - 在 swift 2 中使用 slider 更改音量

javascript - 使用 url 获取所有评论的列表?

facebook - 如何获取 facebook 中的页面访问 token