Skip to main content
 首页 » 操作系统

Facebook Graph API 没有返回每个 friend 的分数

2024年01月01日3598°冷暖

它显示了正在使用该应用程序的 friend 的正确数量,但是,当我使用“/app/scores”获取我 friend 的分数时,它只返回其中的 2 个。

这是获取我的 friend 的代码:

func getFriends() { 
    FBRequestConnection.startWithGraphPath("/me/friends", parameters: nil, HTTPMethod: "GET", completionHandler: {(connect: FBRequestConnection!, result: AnyObject!, error: NSError!) -> Void in 
 
        var dict = result as NSDictionary 
        println("Dict: \(dict)") 
 
    }) 
} 

输出是这样的:

Dict: { 
data =     ( 
            { 
        id = 10204187717756755; 
        name = "Hardeep Singh"; 
    }, 
            { 
        id = 629290707196986; 
        name = "Ishy Singh"; 
    }, 
            { 
        id = 1572289319655654; 
        name = "Ashlee Carter"; 
    } 
); 

然后为了得到我 friend 的分数,我正在使用这个代码:

FBRequestConnection.startWithGraphPath("/app/scores", parameters: nil, HTTPMethod: "GET", completionHandler: {(connection: FBRequestConnection!, result: AnyObject!, error: NSError!) -> Void in 
        var resultdict = result as NSDictionary! 
        let userDefaults = NSUserDefaults.standardUserDefaults() 
        var data: NSArray! = resultdict.objectForKey("data") as NSArray! 
        var int = data.count as Int 
        println("Dict: \(resultdict)") 
        //println("Int: \(int)") 
        for (var i = 0; i < int; i++) { 
            let packet: NSMutableDictionary = data.objectAtIndex(i) as NSMutableDictionary 
            let score = packet.objectForKey("score") as Int 
            var scoreStr = String(score) 
            self.scoreArray.addObject(score) 
            let user: NSMutableDictionary = packet.objectForKey("user") as NSMutableDictionary 
            let name = user.objectForKey("name") as String 
            if (self.name == name) { 
                let highScore = score 
                userDefaults.setValue(highScore, forKey: "fbHighScore") 
            } 
            self.nameArray.addObject(name) 
            self.globalDict.setValue(scoreStr, forKey: name) 
        } 
        userDefaults.setValue(self.nameArray, forKey: "nameArray") 
        userDefaults.setValue(self.scoreArray, forKey: "scoreArray") 
        userDefaults.setValue(self.globalDict, forKey: "dict") 
        println("Scores: \(self.globalDict)") 
    }) 

产生这个输出:

Scores: { 
"Ishy Singh" = 20; 
"Sunny Singh" = 6; 
} 

所以,我不知道如何从有 3 个 friend 使用该应用程序,到只得到我的分数和另外 1 个分数。我已经关注了每一个 Facebook 文档并搜索了几乎所有我能想到的东西,但没有运气。有什么建议吗?

请您参考如下方法:

我找到了答案。未显示的用户在应用程序发布设置中拥有“只有我”的隐私,当我将设置更改为“ friend ”时,它起作用了。