在我的应用程序的这一部分中,用户登录到Facebook并正确使用CLLocationManager检索当前位置。下一步是搜索最近的地方,但是当我这样做时,我得到了这个错误......
错误Domain = com.facebook.sdk.core Code = 8"我们无法确定 这个位置的坐标。检查您的纬度和经度是否正确 在范围内,并验证位置的格式。"
以下是两种方法,一种是搜索,另一种是将带有设置地点ID的示例地点发布到当前用户的Feed(工作正常),但显然我希望地点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)
}
})
}
}
有什么想法吗?我真是太近了!像往常一样,非常感谢帮助。
答案 0 :(得分:0)
我要回答我自己的问题......用%f替换%@,它完美无缺!