使用 Facebook SDK (iOS) 查找最近地点时出错



在我的应用程序的这一部分中,用户登录到Facebook,并使用CLLocationManager正确检索当前位置。下一步是搜索最近的地方,但是当我这样做时,我收到此错误...

错误域=com.facebook.sdk.core 代码=8 "我们无法确定 此位置的坐标。检查您的纬度和经度是否 ,并验证位置的格式。

这里有两种方法,一种是搜索,另一种是将带有设置地点 ID 的示例地点发布到当前用户的提要中(效果很好(,但显然我希望地点 ID 是最近地点的 ID。纬度和经度就在那里,因为我在它们旁边放了一个断点。

查找最近的地方方法....

func findNearestPlaces() {
    let params = NSMutableDictionary(capacity: 4)
    params.setObject(String(format: "%@, %@", self.latitude!, self.longitude!), forKey: "center")
    params.setObject("place", forKey: "type")
    params.setObject("100", forKey: "distance")
    params.setObject("name", forKey: "fields")
    let graphRequest = FBSDKGraphRequest.init(graphPath: "/search", parameters: params as [NSObject : AnyObject], HTTPMethod: "GET")
    graphRequest.startWithCompletionHandler { (connection, response, error) -> Void in
        if error != nil {
            print(error)
        }
        else if let response = response {
            print(response)
        }
    }
}

使用虚拟地方ID签到方法(就像我说的,工作,但只是包含它以供进一步参考(

func checkIn() {
    if FBSDKAccessToken.currentAccessToken() != nil {
        if FBSDKAccessToken.currentAccessToken().hasGranted("publish_actions") {
            let parameterDictionary = NSMutableDictionary()
            parameterDictionary.setObject("This is a test, I'm building an app!", forKey: "message")
            parameterDictionary.setObject("110503255682430", forKey: "place") //TEST <<!
            let graphRequest = FBSDKGraphRequest.init(graphPath: "/me/feed", parameters: parameterDictionary as [NSObject : AnyObject], HTTPMethod: "POST")
            graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in
                if error != nil {
                    print(error)
                }
                else {
                    print(result)
                }
            })
        }
    }
    else {
        let loginManager = FBSDKLoginManager()
        loginManager.logInWithPublishPermissions(["publish_actions"], fromViewController: self, handler: { (result, error) -> Void in
        if error != nil {
            print(error)
        }
        else if let result = result {
            print(result)
        }
        })
    }
}

有什么想法吗?我离得很近!像往常一样,非常感谢帮助。

我要

回答我自己的问题...将 %@ 替换为 %f,它非常有效!

最新更新