Как опубликовать твит в твиттер-апи? - PullRequest
1 голос
/ 15 декабря 2011

Я включил Twitter API в моем приложении. В моем приложении я получил oauth_token и oauth_secre_key с помощью библиотеки oauth. Теперь я хочу опубликовать новый твит. Как отправить запрос http с заголовком авторизации. Моя проблема заключается в том, что у меня есть URL для отправки сообщения из Twitter API: - https://api.twitter.com/1/statuses/update.json?status=Maybe%20he%27ll%20finally%20find%20his%20keys.%20%23peterfalk&trim_user=true&include_entities=true, но когда я открываю свой браузер, то я получаю эту ошибку: -

{"error": "Не удалось вас аутентифицировать.", "Request": "/ 1 / statuses / update.json? Status = Возможно,% 20he% 27ll% 20finally% 20find% 20his% 20keys.% 20% 23peterfalk & trim_user = верно и include_entities = истина "}

Как исправить эту ошибку? Как добавить заголовок авторизации в мой запрос?

Спасибо заранее ...

1 Ответ

1 голос
/ 10 января 2012

Я получаю эту ошибку, потому что я не установил параметр в правильном формате. Теперь я использую этот код и работает нормально.

NSString * trimmedText = [NSString stringWithFormat: @ "% @", txt_comment.text];

NSURL *url=[NSURL URLWithString: @"https://api.twitter.com/1/statuses/update.xml"];
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithCapacity:0];
[params setObject:trimmedText forKey:@"status"];
NSString *body = [self _queryStringWithBase:nil parameters:params prefixed:NO];

NSData* requestData = [body dataUsingEncoding: NSUTF8StringEncoding];


OAMutableURLRequest *request = [[[OAMutableURLRequest alloc] initWithURL:url consumer: appDelegate.consumer token: appDelegate.accessToken realm: nil signatureProvider: nil] autorelease];  

[request setHTTPMethod:@"POST"];
[request setHTTPBody:requestData];
OADataFetcher *fetcher = [[OADataFetcher alloc] init];

[fetcher fetchDataWithRequest:request
                     delegate:self
            didFinishSelector:@selector(accessTokenTicket_post:didFinishWithData:)
              didFailSelector:@selector(accessTokenTicket:didFailWithError:)];
...