我需要在用户的Facebook墙上发布一张带有用户位置的照片(从相机中拍摄)。 现在,facebook照片对象有一个名为place的字段:
object containing id and name of Page associated with this location, and a location field containing geographic information such as latitude, longitude, country, and other fields (fields will vary based on geography and availability of information)
现在我如何获取该地点,将其与照片一起附加并将其上传到用户墙中。 这是我的照片上传代码:
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
resultImage, @"picture",
location, @"place",
nil];
[appDelegate.facebook requestWithGraphPath:@"me/photos"
andParams:params
andHttpMethod:@"POST"
andDelegate:self];
但是,我如何获取位置参数?有人可以帮忙吗?提前谢谢。
答案 0 :(得分:1)
根据this documentation,地点对象只能是所需位置的Facebook页面ID。所以,这是我在上传照片时设法获取用户位置的方法。
-(void)fbCheckForPlace:(CLLocation *)location
{
NSString *centerLocation = [[NSString alloc] initWithFormat:@"%f,%f",
location.coordinate.latitude,
location.coordinate.longitude];
NSLog(@"center location is : %@",centerLocation);
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"place", @"type",
centerLocation, @"center",
@"1000", @"distance",
nil];
[centerLocation release];
[appDelegate.facebook requestWithGraphPath:@"search" andParams:params andDelegate:self];
}
通过调用CLLocation Manager委托获取当前位置并传入上述方法。
接下来,如果此请求成功,则将place对象插入可变数组中。
NSArray *resultData = [result objectForKey:@"data"];
for (NSUInteger i=0; i<[resultData count] && i < 5; i++)
{
[self.listOfPlaces addObject:[resultData objectAtIndex:i]];
}
然后触发了照片上传方法:
- (void)uploadPhotoWithLocation
{
NSString *placeId = [[self.listOfPlaces objectAtIndex:0] objectForKey:@"id"];
params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
self.resultImage, @"picture",
placeId, @"place",
nil];
[appDelegate.facebook requestWithGraphPath:@"me/photos"
andParams:params
andHttpMethod:@"POST"
andDelegate:self];
}
我已经在附近第一个可用的签到位置([self.listOfPlaces objectAtIndex:0]
),现在应用程序可以成功发布用户当前附近位置的照片。
答案 1 :(得分:0)
FB API显示: '地点': '包含与此位置相关联的页面的ID和名称的对象,以及包含纬度,经度,国家和其他字段等地理信息的位置字段(字段将根据地理位置和信息的可用性而变化)'
1)在iOS中启动位置服务 2)得到当前位置:纬度,经度
使用两个数据纬度,经度
答案 2 :(得分:0)
Shabib的上述答案很棒(我没有足够的代表直接评论),但你现在还需要指定&#34;字段&#34;参数,以便图形请求/搜索成功完成。我的参数字典看起来像这样:
NSDictionary *params = @{@"type" : @"place",
@"center" : centerLocation,
@"distance" : @"500",
@"fields" : @"id,name"};