Facebook朋友列表保存为数组解析- Swift



我想转换的朋友列表id,我从facebook作为一个数组保存在解析。我的代码如下,但我得到一个"意外发现nil,而展开一个可选值"错误。我应该做些什么来保存结果解析和检索它作为数组时需要?

  let fbRequest = FBSDKGraphRequest(graphPath:"/me/friends", parameters: nil);
                fbRequest.startWithCompletionHandler { (connection : FBSDKGraphRequestConnection!, result : AnyObject!, error : NSError!) -> Void in
                    if error == nil {
                        print("Friends are : (result)")
                        if let dict = result as? Dictionary<String, AnyObject>{
                            let profileName:NSArray = dict["name"] as AnyObject? as! NSArray
                            let facebookID:NSArray = dict["id"] as AnyObject? as! NSArray
                            print(profileName)
                            print(facebookID)
                    }
                    }
                        else {
                        print("Error Getting Friends (error)");
                    }
                }

当我在print()中使用下面的代码时,我得到下面的结果:

 Friends are : {
data =     (
            {
        id = 138495819828848;
        name = "Michael";
    },
            {
        id = 1105101471218892;
        name = "Johnny";
    }
);

问题是您正在尝试访问顶级字典中的nameid元素,而您需要访问data

当你为好友调用FB Graph API时,它将返回一个字典数组(每个好友一个)。

试试这个:

let fbRequest = FBSDKGraphRequest(graphPath:"/me/friends", parameters: nil)
fbRequest.startWithCompletionHandler { (connection : FBSDKGraphRequestConnection!, result : AnyObject!, error : NSError!) -> Void in
    if error == nil {
        print("Friends are : (result)")
        if let friendObjects = result["data"] as? [NSDictionary] {
            for friendObject in friendObjects {
                println(friendObject["id"] as NSString)
                println(friendObject["name"] as NSString)
            }
        }
    } else {
        print("Error Getting Friends (error)");
    }
}

你也应该看看这篇关于FB Graph API的更多信息。下面是一个简短的片段。

在2.0版本的Graph API中,调用/me/friends将返回此人的也使用该应用程序的朋友

此外,在v2.0中,您必须请求user_friends权限来自每个用户。User_friends不再默认包含在every中登录。每个用户必须授予user_friends权限才能出现在/me/friends的回复中。请参阅Facebook升级指南如需更详细信息,请查看下面的摘要。

最新更新