Как прикрепить геолокацию к твиту с помощью TWRequest - PullRequest
1 голос
/ 08 января 2012

Я хочу прикрепить местоположение пользователя к TWRequest. Я пытался изменить URL (что-то вроде этого: "http://api.twitter.com/1/statuses/update.json?lat=37.76893497&long=-122.42284884"), но ответ был "401 Unauthorized" или "400 Bad Request".

Мой запрос TW:

TWRequest *postRequest = [[TWRequest alloc] initWithURL:
                                               [NSURL URLWithString:@"http://api.twitter.com/1/statuses/update.json"] parameters:[NSDictionary dictionaryWithObject:[tweet text] forKey:@"status"] requestMethod:TWRequestMethodPOST];

Заранее спасибо.

1 Ответ

2 голосов
/ 08 января 2012

Вы пытаетесь выполнить запрос, требующий авторизации. Просто инициализируйте свойство аккаунта. Посмотрите на хорошую статью о Twitter API: http://iosdevelopertips.com/core-services/ios-5-twitter-framework-part-2.html

UPD: И вы не можете смешивать переменные POST и GET, я имею в виду, что вы должны указывать все параметры для NSDictionary (параметры POST), а не для URL.

NSURL *updateURL = [NSURL URLWithString:@"http://api.twitter.com/1/statuses/update.json"];
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:[tweet text], @"status",
    @"-122.42284884", @"long",
    @"37.76893497", @"lat", nil];
TWRequest *postRequest = [[TWRequest alloc] initWithURL:updateURL                  
                                             parameters:dict
                                          requestMethod:TWRequestMethodPOST];

UPD2: Если географическое местоположение не работает, проверьте, включено ли местоположение для учетной записи Twitter (перейдите на сайт Twitter - Настройки - Учетная запись - Местоположение Tweet). Посмотрите документацию REST API на сайте Twitter раздел запроса на обновление :

О гео

Любые параметры геотегирования в обновлении будут игнорироваться, если для пользователя задано значение geo_enabled (это значение по умолчанию) настройка для всех пользователей, если пользователь не включил геолокацию Настройки)

...