从 Facebook SDK 检索国家 - IOS
Retrieve country from Facebook SDK - IOS
我正在使用 Facebook SDK 获取具有权限的用户详细信息:
[NSArray arrayWithObjects:@"user_photos",@"public_profile",@"user_location", @"user_birthday",nil];
我知道如何获取城市,但如何获取用户的国家/地区?
FBRequest *request = [FBRequest requestForMe];
[request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error)
{
if (!error)
{
NSDictionary *userData = (NSDictionary *)result;
NSString *facebookID = userData[@"id"];
NSString *name = userData[@"name"];
NSString *city = userData[@"location"][@"name"];
}
else
{
//...
}
}];
试试这个:
NSString *city = userData[@"location"][@"city"];
如@trick14 所述,它应该是 [@"location"][@"country"]
。如果您无法从中获取值,可能有多种原因:
- 您正在查询的用户的个人资料中没有位置信息
- 您正在使用的访问令牌没有授予
user_location
权限(通过调用 /me/permissions
检查)
- 该位置没有国家/地区信息(极不可能)
顺便说一下,您的权限字符串有问题,user_location
被包含了两次,offline_access
和 publish_stream
早就被弃用了。
我正在使用 Facebook SDK 获取具有权限的用户详细信息:
[NSArray arrayWithObjects:@"user_photos",@"public_profile",@"user_location", @"user_birthday",nil];
我知道如何获取城市,但如何获取用户的国家/地区?
FBRequest *request = [FBRequest requestForMe];
[request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error)
{
if (!error)
{
NSDictionary *userData = (NSDictionary *)result;
NSString *facebookID = userData[@"id"];
NSString *name = userData[@"name"];
NSString *city = userData[@"location"][@"name"];
}
else
{
//...
}
}];
试试这个:
NSString *city = userData[@"location"][@"city"];
如@trick14 所述,它应该是 [@"location"][@"country"]
。如果您无法从中获取值,可能有多种原因:
- 您正在查询的用户的个人资料中没有位置信息
- 您正在使用的访问令牌没有授予
user_location
权限(通过调用/me/permissions
检查) - 该位置没有国家/地区信息(极不可能)
顺便说一下,您的权限字符串有问题,user_location
被包含了两次,offline_access
和 publish_stream
早就被弃用了。