iOS Facebook Статус Расположение - PullRequest
16 голосов
/ 01 февраля 2012

Я не совсем понимаю, как использовать местоположение в статусе пользователя.Я вижу, что есть поле места, но я не знаю, как его использовать.В инструкциях просто говорится об объекте, он вообще не указывает, какой объект он хочет и в каком формате он хочет.Может кто-нибудь помочь мне опубликовать статус с указанием местоположения на нем?

Это мой код:

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

Ответы [ 4 ]

1 голос
/ 14 марта 2012

Документы для , создающие сообщение потока , перечисляют параметр place, значением которого является Идентификатор страницы Facebook местоположения .Вы можете найти эти идентификаторы мест с помощью search или , запрашивая таблицу FQL мест .

В этом случае вы также должны использовать путь API Graph me/feed.

Хотя это не имеет отношения к вашему вопросу, в ветку if (image) вы добавляете параметр type, который не задокументирован в разделе при публикации фотографии .

0 голосов
/ 24 января 2013

, чтобы проверить это, вы можете попробовать здесь https://developers.facebook.com/tools/ в поле вставьте этот пример строки "search? q = spa & type = place & center = 40.7167, -74 & distance = 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"

в инструменте измените метод на POST, затем добавьте параметр поля для «message» и «place» для его проверки.

0 голосов
/ 05 декабря 2012

Вы что-то упустили, насколько я помню, в книге взлома я использовал местоположение, чтобы найти идентификатор места, а затем поместил его в параметр "место".

Чтобы сделать это, 1. вам нужно выполнить поиск:

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

// скопировать с facebook:]

  1. выбрать место
  2. опубликовать сообщение с идентификатором меставыберите место с расстоянием более 1000 м (сейчас не уверены, пробовали давно)
0 голосов
/ 31 августа 2012

Для добавления места необходимо указать идентификатор места, известный в настоящее время в Facebook.Для этого вы можете получить ближайшие места, которые также возвращают ID, а затем добавить то, которое вы хотите, в качестве места.

...