2012-02-01 21 views
16

No estoy seguro de cómo uso una ubicación en el estado de un usuario. Veo que hay un campo de lugar, pero no sé cómo usarlo. Las instrucciones solo dicen un objeto, no especifica en absoluto qué objeto quiere y en qué formato quiere. ¿Alguien puede ayudarme a publicar un estado con una ubicación en él?iOS Facebook Estado Ubicación

Este es mi código de ahora:

- (void)postWithMessage:(NSString *)message image:(UIImage *)image location:(CLLocation *)location { 
    NSMutableDictionary *params = [NSMutableDictionary dictionary]; 
    NSString *path = @"feed"; 
    [params setObject:@"status" forKey:@"type"]; 
    if (message && ![message isEqualToString:@""]) [params setObject:message forKey:@"message"]; 
    if (image) { 
     path = @"me/photos"; 
     [params setObject:@"photo" forKey:@"type"]; 
     NSData *imageData = UIImagePNGRepresentation(image); 
     [params setObject:imageData forKey:@"source"]; 
    } 
    if (location) { 
     //Stole this from iOS hackbook that Facebook wrote, but it wasn't helpful. 
     NSString *centerLocation = [[NSString alloc] initWithFormat:@"%f,%f", location.coordinate.latitude, location.coordinate.longitude]; 
     [params setObject:centerLocation forKey:@"center"]; 
    } 


    [facebook requestWithGraphPath:path andParams:params andHttpMethod:@"POST" andDelegate:self]; 
} 

Respuesta

1

la documentación para creating a stream post lista un parámetro place cuyo valor es la página de Facebook Identificación de la ubicación. Puede encontrar estos ID de lugar a través del search o querying the place FQL table.

También debe usar la ruta de API api me/feed en este caso.

Aunque no está relacionado con su pregunta, en la rama if (image) agrega un parámetro type que no está documentado en section on posting a photo.

0

Para agregar un lugar, debe proporcionar el ID de lugar conocido por Facebook actualmente. Para eso, puede obtener los lugares más cercanos que devuelven la identificación y luego agregar el que desea como lugar.

0

Te has perdido algo, como recuerdo, el hackbook usa la ubicación para encontrar el ID de lugar y luego ponerlo en el parámetro "lugar".

Para ello, 1. Es necesario hacer una búsqueda bibliográfica:

https://graph.facebook.com/search? 
    q=coffee& 
    type=place& 
    center=40.7167,-74& 
    distance=1000 

// copiar desde facebook:]

  1. seleccione un lugar
  2. publicar el post con lugar Identificación Observé que, como lo intenté antes, no puede seleccionar un lugar con una distancia superior a 1000 m (no estoy seguro al respecto, intenté hace mucho tiempo)
0

Para probar esto se puede probar aquí https://developers.facebook.com/tools/ en el campo pega este ejemplo de línea de "búsqueda? Q = spa & type = colocar & centro = 40.7167, -74 & distancia = 1000"

then you will see results like 
{ 
    "data": [ 
    { 
     "location": { 
     "street": "221 Canal Street, Room 301", 
     "city": "New York", 
     "state": "NY", 
     "country": "United States", 
     "zip": "10013", 
     "latitude": 40.71761, 
     "longitude": -73.99933 
     }, 
     "category": "Spas/beauty/personal care", 
     "name": "CiCi Beauty Spa", 
     "id": "180068255444372" 
    }, 

etc... 

you can then post status like 
("message", "im here guys"); // your message 
("place", "180068255444372"); // the id of the place 

in the tool field "me/feed" 

en la herramienta cambia el método a POST y agrega el parámetro de campo para "mensaje" y "lugar" para probarlo.