如何在使用Parse时获取所有Facebook好友的列表?

时间:2015-04-06 06:32:17

标签: ios swift parse-platform facebook-ios-sdk

以下是在 viewDidAppear 下面的代码中运行 getFBfriends()时的输出:

输出:

Result Dict: {
    data =     (
    );
    summary =     {
        "total_count" = 711;
    };
}
Found 0 friends

" total_count = 711"是正确的,但没有关于朋友的数据。我在这里错过了什么?认为权限是正确的。

代码:

class SignUpViewController: UIViewController {
@IBOutlet weak var btn_signIn: UIButton!
@IBAction func action_btnSignIn(sender: AnyObject) {

    var permissions = ["public_profile", "user_friends"]

    println("in action_btnSignIn() of SignUpViewController")


    var fbloginView:FBLoginView = FBLoginView(readPermissions: ["email", "public_profile", "user_friends"])

override func viewDidAppear(animated: Bool) {
    if PFUser.currentUser() != nil {
        println("User logged in, so launching Menu Screen")
        //self.performSegueWithIdentifier("launchmenu", sender: self)
        getDBfriends()
    } else {
        println("User NOT logged in")
    }

}
func getDBfriends() {
    var friendsRequest: FBRequest = FBRequest.requestForMyFriends()
    friendsRequest.startWithCompletionHandler{(connection:FBRequestConnection!, result:AnyObject!, error:NSError!) -> Void in
        var resultdict = result as NSDictionary
        println("Result Dict: \(resultdict)")
        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
            println("the id value is \(id)")
        }

        var friends = resultdict.objectForKey("data") as NSArray
        println("Found \(friends.count) friends")
    }
}

}

2 个答案:

答案 0 :(得分:4)

从图谱API的v2.0开始,您只能获得授权您的应用的朋友。结果是正确的,没有一个朋友授权你的应用程序,所以它是空的,只显示朋友的总数。

更多信息:Get ALL User Friends Using Facebook Graph API - Android

答案 1 :(得分:3)

您的权限是正确的,但尝试使用其他fb帐户登录您的应用,您将在数据响应中获得该用户详细信息。