К сожалению, GSTwitPicEngine не использует ту же версию oauth-consumer, что и потрясающая библиотека Twitter + Oauth (SAOAuthTwitterEngine).Я предполагаю, что вы используете эту библиотеку для отправки сообщений в твиттер.
Сбой в том, что OAToken из Twitter + Oauth не реализует метод "параметров".
Сегодня я провел все утронастройка нескольких библиотек, чтобы избежать сбоев.Здесь вы можете скачать пример проекта, который я создал для публикации в Twitter твитпик-фотографии с сообщением.
TestTwitpic
В проекте имеются все последние версии всех библиотек изgithub.
Инструкции по запуску моего проекта TestTwitpic :
В TestTwitpic-Prefix.pch установите переменные для:
#define kTwitterOAuthConsumerKey @""
#define kTwitterOAuthConsumerSecret @""
#define kTwitPicAPIKey @""
В RootViewControllerВы можете изменить эти строки в соответствии со своими потребностями.Чтобы сменить фотографию:
//change [UIImage imageNamed:@"image.jpg"] for whatever UIImage you want to upload
//change @"my photo" for whatever title you want for your photo in twitpic website
[twitpicEngine uploadPicture:[UIImage imageNamed:@"image.jpg"] withMessage:@"my photo"];
, и вот это, чтобы изменить сообщение, отправленное в твиттер:
//I post to twitter the title of the photo and the twitpic url but you can post whatever you want
[engine sendUpdate:[NSString stringWithFormat:@"%@ %@", [[[response objectForKey:@"request"] userInfo] objectForKey:@"message"], [[response objectForKey:@"parsedResponse"] objectForKey:@"url"]]];
Если вы хотите создать свой собственный проект на основе этого образца.Выполните следующие действия:
- Импортируйте в свой проект (перетащите) папку Twitpic со всеми библиотеками, которые находятся внутри.
- Добавьте эти платформы в ваш проект:
- CoreGraphics
- libz.1.2.3
- libxml2
- MobileCoreServices
- Конфигурация системы
- CFNetwork
- Безопасность
- В настройках сборки добавьте «$ SDKROOT / usr / include / libxml2» в «Пути поиска заголовка» (пометить его как рекурсивный)
- В настройках сборкидобавьте -lxml2 к «Другие флаги компоновщика»
Если вы хотите узнать, что я сделал для исправления библиотек, я вам более или менее расскажу, что я помню, что сделал:
- Импорт библиотек Twitter + Oauth, GSTwitPicEngine, OARequestHeader, TouchJSON и ASIHTTPRequest.
- Установите
GSTwitPicEngine
для использования TouchJSON
вместо YAJL
. - Добавлена категория NSString + URLEncoding из проекта github oauth-consumer: OARequestHeader было ошибочнымспойте это.
- Изменены все вхождения NSDictionary * foo = [параметры токена] внутри OARequestHeader со строкой:
NSDictionary *foo = [NSDictionary dictionaryWithObject:[token key] forKey:@"oauth_token"];
- Создал метод getAccessToken в SAOAuthTwitterEngine для возврата закрытой переменной _accessToken.
- In requestFinished: внутри GSTwitPicEngine
- изменить строку:
response = [[CJSONDeserializer deserializer] deserialize:responseString error:&error];
- со строкой:
response = [[CJSONDeserializer deserializer] deserialize:[responseString dataUsingEncoding:NSUTF8StringEncoding] error:&error];
- , поскольку GSTwitPicEngine ошибочно принял десериализацию: ошибка: метод принимает строку NSString вместо NSData.