1

ユーザーの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];

しかし、ここで位置パラメータを取得するにはどうすればよいですか?誰か助けてもらえますか?前もって感謝します。

4

3 に答える 3

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 Manager デリゲートを呼び出すことによって取得され、上記のメソッドに渡されます。

次に、このリクエストが成功すると、プレース オブジェクトが可変配列に挿入されます。

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]) の最初の近くの場所を撮影したところ、アプリはユーザーの現在の近くの場所で写真を正常に投稿できるようになりました。

于 2012-07-18T14:57:56.257 に答える
0

FB APIは、次のように表示します。'place':'この場所に関連付けられたページのIDと名前を含むオブジェクト、および緯度、経度、国、その他のフィールドなどの地理情報を含む場所フィールド(フィールドは地理と可用性によって異なります)情報)'

1)iOSで位置情報サービスを開始します2)現在の場所を取得しました:緯度、経度

2つのデータの緯度、経度を使用します

于 2012-07-15T05:44:42.083 に答える