Аккаунт Twitter, созданный с помощью токенов, не работает на iOS7

Я работаю над приложением, работающим на iOS6/7, с пользовательскими представлениями для публикации в Twitter. Чтобы улучшить взаимодействие с пользователем, если системные учетные записи недоступны, я бы предоставил пользователю веб-просмотр для ввода своих учетных данных, сохранил их в ACAccountStore, как это предлагается в ACAccountCredential.h, и использовал его для публикации.

Он отлично работает на iOS6, но на iOS7 общий доступ завершается с ошибкой 401. Странно то, что учетная запись сохраняется без ошибок в ACAccountStore и может использоваться приложением Twitter для чтения и публикации в Twitter (без дальнейшего входа в систему), поэтому я предполагаю, что учетная запись (токен и секрет токена) работает правильно. .

SLRequest *postRequest = nil;
NSURL *url = [NSURL URLWithString:@"http://api.twitter.com/1/statuses/update.json"];
NSDictionary *content = @{@"status":self.textToShare};
postRequest = [SLRequest requestForServiceType:SLServiceTypeTwitter
requestMethod:SLRequestMethodPOST
URL:url
parameters:content];

[postRequest setAccount:self.twitterAccount];
[postRequest performRequestWithHandler:completionHandler];

Я пробовал также с API v1.1, но, похоже, это не помогает. Любые идеи?


person Fr4ncis    schedule 29.10.2013    source источник


Ответы (2)


Эта проблема возникнет как на iOS6, так и на iOS7, поскольку /1/statuses/update.json теперь устарела. Кроме того, начиная с версии 1.1 API, вы должны использовать HTTPS для всех запросов.

Ваш URL должен быть изменен на следующий:

NSURL *url = [NSURL URLWithString:
              @"https://api.twitter.com/1.1/statuses/update.json"];

Дополнительную информацию см. в разделе Часто задаваемые вопросы по API Twitter: что влечет за собой прекращение использования API v1?

person Sean Cook    schedule 29.10.2013

Он работает на iOS6 и iOS7, изменив URL-адрес для использования HTTPS и используя API версии 1.1.

person Fr4ncis    schedule 29.10.2013