setAccessToken时出现twitpic API GSTwitPicEngine错误

我尝试使用GSTwitPicEngine类https://github.com/Gurpartap/GSTwitPicEngine在twitter上分享图像 但它给出了错误 因为我们必须设置
[twitpicEngine setAccessToken:token];
如果我是对的,我使用
_accessToken
SA_OAuthTwitterEngine
作为代币
_accessToken
在课堂上是私人的
SA_OAuthTwitterEngine
,我把它设置为公开的
@property (nonatomic, readonly) OAToken *accessToken;
@synthesize accessToken = _accessToken;
然后在行动
twitPicEngine = [GSTwitPicEngine twitpicEngineWithDelegate:self];
[twitPicEngine setAccessToken:twitterObj.accessToken];
[twitPicEngine uploadPicture:[shareDict objectForKey:@"image"] withMessage:[shareDict objectForKey:@"image_msg"]];
但是,当setAccessToken与日志一起时,应用程序崩溃
-[OAToken parameters]: unrecognized selector sent to instance 0x6327e30
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[OAToken parameters]: unrecognized selector sent to instance 0x6327e30'
如果你能找到任何错误,请帮忙 阿米特巴图     
已邀请:
不幸的是,GSTwitPicEngine并没有使用相同版本的oauth-consumer而不是神话般的Twitter + Oauth库(SAOAuthTwitterEngine)。我假设您正在使用该库向Twitter发送消息。 崩溃是因为来自Twitter + Oauth的OAToken没有实现“参数”方法。 今天我花了整整一个上午调整了几个库来避免崩溃。 在这里,您可以下载我创建的示例项目,用于将带有消息的twitpic照片发布到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"];
并且这个改变发送给twitter的消息:
//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
。 添加了来自oauth-consumer github项目的类别NSString + URLEncoding,因为OARequestHeader缺少它。 使用以下行修改了OARequestHeader中出现的所有NSDictionary * foo = [toke参数]:
NSDictionary *foo = [NSDictionary dictionaryWithObject:[token key] forKey:@"oauth_token"];
在SAOAuthTwitterEngine中创建了一个方法getAccessToken,以返回私有_accessToken变量。 在requestFinished中:在GSTwitPicEngine里面 换行:
response = [[CJSONDeserializer deserializer] deserialize:responseString error:&error];
与线:
response = [[CJSONDeserializer deserializer] deserialize:[responseString dataUsingEncoding:NSUTF8StringEncoding] error:&error];
因为GSTwitPicEngine错误地假设反序列化:error:方法接受NSString而不是NSData。     
您可以设置访问令牌&从twitter引擎获取twitpic访问密码,即 SA_OAuthTwitterEngine.m (void)setAccessToken:(OAServiceTicket *)ticket withData:(NSData *)data 在“SA_OAuthTwitterEngine.m”中创建“GSTwitPicEngine.m”类的对象。传递访问令牌&访问“GSTwitPicEngine.m”的秘密并在“SA_OAuthTwitterEngine.m”中设置“GSTwitPicEngine.m”的委托方法 还有一个变化...... 在生成OAuth Header时必须交叉检查URLEncoding [requestHeader generateRequestHeaders] 这将根据Twitter库中的“OAuthConsumer”类     

要回复问题请先登录注册