照片上传到自己的iOS通过图形API与用户的位置墙(Photo Upload to own wall

2019-10-17 00:03发布

我需要发布在用户的Facebook墙与用户的位置的照片(拍摄格式相机)。 现在,Facebook的照片对象有一个字段命名的地方 :

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];

但是,我怎么在这里得到的位置参数? 任何人都可以帮忙吗? 提前致谢。

Answer 1:

该位置目标只能是所期望的位置的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管理委托获得并且在上述方法中通过。

接下来,如果该请求是成功的,该位置目标被插入在一个可变的阵列。

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]而现在的应用程序可以成功发布与用户当前位置附近的照片。



Answer 2:

在FB API示出了:“位置”:“含有ID和与该位置相关联的页面的名称,以及包含地理信息,例如纬度,经度,国家等领域位置字段对象(字段会根据地理和可用性信息)'

1)在iOS版2)起始位置的服务得到了当前的位置:纬度,经度

使用这两个数据的纬度,经度



Answer 3:

通过以上是Shabib伟大的答案(我没有足够的代表直接发表评论),但你现在还需要指定“域”参数,以便使图形请求/搜索成功完成。 我的字典参数如下:

NSDictionary *params = @{@"type" : @"place",
                        @"center" : centerLocation,
                        @"distance" : @"500",
                        @"fields" : @"id,name"};


文章来源: Photo Upload to own wall via iOS Graph API with user's location