iOS Facebook SDK-获取用户位置

iOS Facebook SDK-获取用户位置,ios,facebook,Ios,Facebook,使用FBLoginView我可以登录用户并获得一个FBGraphUser对象,该对象以以下结构保存数据: FBGraphUser |---用户名 |---电子邮件 |--id位置 |---地名 |--id位置 |---城市 |---街道 |---纬度/经度 请参见Facebook,了解更好的图片:) 我能够使用正确的地名数据获取用户的FBGraphPlace位置,但FBGraphLocation为空 我想访问这些数据,这就是我被难住的地方。我确保用户的位置信息是公开的,并且我将FBLoginVi

使用
FBLoginView
我可以登录用户并获得一个
FBGraphUser
对象,该对象以以下结构保存数据:

FBGraphUser

|---用户名

|---电子邮件

|--id位置

|---地名

|--id位置

|---城市

|---街道

|---纬度/经度

请参见Facebook,了解更好的图片:)

我能够使用正确的
地名
数据获取用户的
FBGraphPlace位置
,但
FBGraphLocation
为空

我想访问这些数据,这就是我被难住的地方。我确保用户的位置信息是公开的,并且我将
FBLoginView
readPermissions
设置为包含
@“用户位置”

有人知道我会在哪里犯错吗?谢谢

编辑-解决方案:我的Facebook地址字段为空。我把“当前城市”误认为是地址。

试着这样做:

id<FBGraphUser> fbUser = (id<FBGraphUser>)user;
id<FBGraphPlace> fbPlace = [fbUser location];
id<FBGraphLocation> fbLocation = [fbPlace location];
NSString * userCity = [fbLocation city];
NSString * userCountry = [fbLocation country];
NSString * userZip = [fbLocation zip];
id fbUser=(id)user;
id fbPlace=[fbUser location];
id fbLocation=[fbPlace location];
NSString*userCity=[fbLocation city];
NSString*userCountry=[fbLocation country];
NSString*userZip=[fbLocation zip];
您当前正在访问FBGraphPlace的name属性,该属性为您提供该位置的NSString表示形式。您要做的是访问location属性,它是FBGraphLocation。此对象具有所需的各种组件的属性


但我不确定这是否是你所需要的。

你找到解决办法了吗?@Bibo不幸的是,没有。啊,我明白你的意思了——很好。不幸的是,这仍然为
fbLocation
及其所有组件生成空值。您是否使用此代码获得正确的数据?是和否,请使用您自己的Facebook帐户进行检查,您必须将您的完整地址提供给Facebook(我使用我的帐户进行了测试,代码正常,问题是您从Facebook和用户获得的数据,与权限无关),如果你没有得到任何价值是因为在Facebook中不完整,我认为我们无法从所有用户那里获得这些信息,我在我的应用程序中也面临着同样的问题。你的见解帮助我解决了这个问题-非常感谢!我很天真,只是填写了我个人的“当前城市”。根据你最后的评论,“把你的完整地址给Facebook”,我进一步查看,发现有一个地址字段是空的,用于我的个人帐户。填写后,它会产生正确的结果。再次感谢!看起来FB SDK的最新版本中已删除了
FBGraphUser