twitpic API GSTwitPicEngine错误而setAccessToken
我想,如果我的权利,我使用类的_accessToken
使用GSTwitPicEngine类https://github.com/Gurpartap/GSTwitPicEngine用于在Twitter上
共享图像,但它给错误twitpic API GSTwitPicEngine错误而setAccessToken
我们必须设置[twitpicEngine setAccessToken:token];
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'
请帮助,如果你能找到任何一点毛病
阿米特Battan
不幸的是,GSTwitPicEngine不是我们与美妙的Twitter + Oauth库(SAOAuthTwitterEngine)相比,Oauth-consumer的版本更高。我假设你正在使用该库将消息发布到Twitter。
这次崩溃是因为来自Twitter + Oauth的OAToken没有实现“参数”方法。
今天我花了整整一个早上调整了几个库,以避免崩溃。 在这里,您可以下载一个我创建的示例项目,用于向twitter发送twitpic照片并发送消息。
该项目从GitHub所有库的所有最新版本。
说明让我TestTwitpic项目工作:
在TestTwitpic-Prefix.pch设置变量:
#define kTwitterOAuthConsumerKey @""
#define kTwitterOAuthConsumerSecret @""
#define kTwitPicAPIKey @""
在RootViewController的,你可以将这些行更改您的需求。如果你想在此基础上样品创建自己的项目
//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"]]];
:要更改照片:
//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。执行以下操作:
- 导入您的项目(拖放)Twitpic文件夹与所有内部库。
- 这些框架添加到您的项目:
- CoreGraphics在
- libz.1.2.3
- 的libxml2
- MobileCoreServices
- SystemConfiguration
- CFNetwork的
- 安全
- 在生成设置中添加 “$ SDKROOT/usr/include目录/ libxml2的” 到 “头文件搜索路径”(标记为递归)
- 在Build设置添加-lxml2到 “其他连接标志”
如果你想知道我做了什么固定的图书馆,我会告诉你更多或更少我记得我做过什么:
- 导入Twitter的+端Oauth,GSTwitPicEngine,OARequestHeader,TouchJSON和ASIHTTPRequest库。
- 设置
GSTwitPicEngine
使用TouchJSON
而不是YAJL
。 - 从oauth-consumer github项目中添加NSString + URLEncoding类别为OARequestHeader缺少它。
- 改性的NSDictionary的所有匹配*富= [托克参数]内OARequestHeader与线:
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发动机即得到
SA_OAuthTwitterEngine后设置访问令牌&访问揭秘twitpic。米
- (无效)setAccessToken:(OAServiceTicket *)票withData:(NSData的*)数据
创建 “SA_OAuthTwitterEngine.m” “GSTwitPicEngine.m” 级令牌&通访问&的对象访问秘密“GSTwitPicEngine.m”和“GSTwitPicEngine.m”在“SA_OAuthTwitterEngine.m”的设定委托方法
还有一变......
必须交叉检查URLEnco丁而genrating OAuth的头即
[requestHeader generateRequestHeaders]
这将根据Twitter的图书馆 “OAuthConsumer” 类
感谢Monitus ..我会检查你的代码 – 2011-05-02 04:21:59
它没有帮助呢? @AmitBattan – Monitus 2011-05-17 07:21:08
请求连续失败... TestTwitpic [2180:207] TwitPic无法上传:{ errorDescription =“请求失败。”; request =“”; 任何帮助 –
Tobias
2011-05-30 15:25:41