在我的应用程序的这一部分中,用户登录到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,它非常有效!