Статус статуса iOS Facebook - программирование
Подтвердить что ты не робот

Статус статуса iOS Facebook

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

Теперь это мой код:

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

Ответ 1

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

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

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

Ответ 2

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

Ответ 3

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

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

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

//копия из facebook:]

  • выберите место
  • опубликовать сообщение с идентификатором места Отметил, что, как я пробовал, прежде чем вы не можете выбрать место с расстоянием более 1000 м (не уверен в этом сейчас, давно пробовал)

Ответ 4

чтобы проверить это, вы можете попробовать здесь 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", чтобы проверить его.