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