iOS中的访问分页 - 上一页和下一页:从facebook graph-api以JSON格式检索

Sun*_*nda 3 paging json facebook-graph-api ios7

从JSON上一页和下一页链接访问iOS代码中的分页

在从图api中检索的JSON对象中,由于信息的加载,信息被分页,当我尝试访问上一个和下一个链接时,它会给出OAuth错误.任何人都可以帮助如何通过iOS应用程序中的目标C访问链接.

我想知道两件事 - 如何使用 - > limit = N来检索'N'项目以及如何打开FBSDKgraphrequest并使用分页链接链接(包含分页信息)

    paging =         {
        next = "https://graph.facebook.com/v2.3/897401690298128/inbox?access_token=CAAEsxMhiSe4BACWnj27BT6ZBvj2BAxNZCtCNQyCKQORXyylXXkQy3DLSF75UGSz2FydAkQx6Pj49MOS0Q3SGiU1vkQ1iUEs2fQvvlwW3Wc04DEnXZB4CZCza7tOJfyncIPrkFrudQCeRhWUUREqMpCI8Dnm6Ozc6xmwOlT1uN2ZCgQ91llcVC1kV04fiZCqO6H6edFe2YZAUZBy86pw1p4SWCUvgMshzkvZBGgpG8UWG50ZCShdeQPUc86fsuQGOcAno0ZD&limit=25&until=1428241306&__paging_token=enc_AdC9127ZCBVnZACHUlMZBTC39ZC8bSP4ZA8uwQZBdy8xhsZAyKAcxxNdqn48Er3CrVM4DkJPATHhOYBVRm8FuCvYZBU8KSpZA";
        previous = "https://graph.facebook.com/v2.3/897401690298128/inbox?access_token=CAAEsxMhiSe4BACWnj27BT6ZBvj2BAxNZCtCNQyCKQORXyylXXkQy3DLSF75UGSz2FydAkQx6Pj49MOS0Q3SGiU1vkQ1iUEs2fQvvlwW3Wc04DEnXZB4CZCza7tOJfyncIPrkFrudQCeRhWUUREqMpCI8Dnm6Ozc6xmwOlT1uN2ZCgQ91llcVC1kV04fiZCqO6H6edFe2YZAUZBy86pw1p4SWCUvgMshzkvZBGgpG8UWG50ZCShdeQPUc86fsuQGOcAno0ZD&limit=25&since=1432299972&__paging_token=enc_AdDp9ZCK2ZBP40AgTi4TCzaB0QFT1Cy7s1R7HLLDDaT7nbnLYDZB4LZBjiONOqG5QR9Q22KY1oU1LzNOwS5uNZBG7uLF4&__previous=1";
    };
Run Code Online (Sandbox Code Playgroud)

cdu*_*uet 6

您仍然可以使用Facebook中的SDK,您只需将"after"字段作为参数.然后调用递归函数.我刚刚在Swift中实现的解决方案:

func getFBTaggableFriends(nextCursor : String?, failureHandler: (error: NSError) -> Void) {
    var qry : String = "me/taggable_friends"
    var parameters = Dictionary<String, String>() as? Dictionary
    if nextCursor == nil {
        parameters = nil
    } else {
        parameters!["after"] = nextCursor
    }
    // Facebook: get taggable friends with pictures
    var request = FBSDKGraphRequest(graphPath: qry, parameters: parameters)
    request.startWithCompletionHandler { (connection : FBSDKGraphRequestConnection!, result : AnyObject!, error : NSError!) -> Void in
        if ((error) != nil)
        {
            // Process error
            println("Error: \(error)")
        }
        else
        {
            //println("fetched user: \(result)")
            var resultdict = result as! NSDictionary
            var data : NSArray = resultdict.objectForKey("data") as! NSArray

            for i in 0..<data.count {
                let valueDict : NSDictionary = data[i] as! NSDictionary
                let id = valueDict.objectForKey("id") as! String
                let name = valueDict.objectForKey("name") as! String
                let pictureDict = valueDict.objectForKey("picture") as! NSDictionary
                let pictureData = pictureDict.objectForKey("data") as! NSDictionary
                let pictureURL = pictureData.objectForKey("url") as! String
                println("Name: \(name)")
                //println("ID: \(id)")
                //println("URL: \(pictureURL)")
            }
            if let after = ((resultdict.objectForKey("paging") as? NSDictionary)?.objectForKey("cursors") as? NSDictionary)?.objectForKey("after") as? String {
                self.getFBTaggableFriends(after, failureHandler: {(error) in
                println("error")})
            } else {
                println("Can't read next!!!")
            }
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

然后,您将调用此函数:

getFBTaggableFriends(nil, failureHandler: {(error)
        in println(error)});
Run Code Online (Sandbox Code Playgroud)