2010-05-28 130 views
2

我正在开发一个使用Twitvid库将视频上传到TwitVid的iPhone应用程序。 该库首先使用用户名和密码输入参数对应用程序进行身份验证。然后它上传视频。 但是,最近我切换到OAuth身份验证机制,导致用户可以输入用户名和密码的网页。 因此,我无法在我的应用程序中为用户名和密码提供上传视频的输入字段。使用OAuth将视频上传到Twitter

有人可以帮我解决这个问题。

感谢和问候, 迪帕

回答

2

我认为你已经使用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; 
} 

干杯, Pragnesh