【问题标题】:Uploading videos to Twitter using OAuth使用 OAuth 将视频上传到 Twitter
【发布时间】:2011-02-25 03:08:22
【问题描述】:
我正在开发一个使用 Twitvid 库将视频上传到 TwitVid 的 iPhone 应用程序。
该库首先使用用户名和密码输入参数对应用程序进行身份验证。然后它上传视频。
但是,最近我切换到 OAuth 身份验证机制,这会导致用户可以输入用户名和密码的网页。
所以,我无法在我的应用程序中提供用户名和密码的输入字段来上传视频。
谁能帮我解决这个问题。
感谢和问候,
迪帕
【问题讨论】:
标签:
video
upload
twitter
oauth
【解决方案1】:
我认为您已将 SA_OAuthTwitterEngineDelegate 用于 Oauth。如果然后将以下方法替换为SA_OAuthTwitterController.m 文件中的现有方法。我认为这会有所帮助。
- (BOOL) webView: (UIWebView *) webView shouldStartLoadWithRequest: (NSURLRequest *) request navigationType: (UIWebViewNavigationType) navigationType {
NSData *data = [request HTTPBody];
char *raw = data ? (char *) [data bytes] : "";
if (raw && strstr(raw, "cancel=")) {
[self denied];
return NO;
}
else if ([[[request URL] absoluteString] isEqualToString:@"http://twitter.com/oauth/authorize"]) {
NSString *str = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
NSRange range = [str rangeOfString:@"password"];
NSLog(@"%d",range.location);
if (range.location != NSNotFound ) {
NSString *strPass = [str substringFromIndex:range.location+8];
NSRange toRang = [strPass rangeOfString:@"&oauth_token="];
strPass = [strPass substringToIndex:toRang.location];
NSArray *tempArray = [strPass componentsSeparatedByString:@"="];
if ([tempArray count]) {
strPass = [tempArray objectAtIndex:1];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:strPass forKey:@"pass"];
}
}
}
if (navigationType != UIWebViewNavigationTypeOther)
_webView.alpha = 0.1;
return YES;
}
干杯,
普拉格尼什