从iPhone登录Twitter的困难

时间:2010-04-15 05:25:02

标签: iphone twitter integration mgtwitterengine

我正在使用MGTwitterEngine将Twitter功能添加到我的应用中。只需提示用户输入用户名和密码,然后开始发布即可。但奇怪的是,我注意到其他应用程序(例如Foursquare和Brightkite)要求您访问他们的网站,将您的Twitter帐户与您的foursquare / brightkite /任何帐户相关联。

他们为什么这样做?

我的应用程序是否有理由不提示用户输入Twitter用户名和密码,即使它很容易?

非常感谢! 特里斯坦

3 个答案:

答案 0 :(得分:1)

这是因为您使用的是Basic Auth,它只是一个用户名/密码。大多数新的Twitter应用程序使用更强大的OAuth,这要求您访问Twitter.com以允许访问,但不需要用户名/密码。 Twitter API docs声称对Basic Auth的支持很快就会被删除,因此您也应该使用OAuth。

答案 1 :(得分:0)

Twitter支持OAuth,允许您在不直接询问密码的情况下访问其帐户。

主要关注的是安全性。如果/当您的数据库被黑客攻击时会发生什么?攻击者可以访问您所有用户的Twitter密码。

另一方面,这些网站不存储用户密码;如果他们遭到黑客入侵,Twitter可以轻松禁用oauth凭据,锁定任何攻击者,直到他们造成伤害。

使用OAuth;它更安全。

答案 2 :(得分:-1)

只需替换YOUR_TWITTER_USERNAME和YOUR_TWITTER_PASSWORD即可。下面的代码必须包含在viewController.m

NSMutableURLRequest *theRequest=[NSMutableURLRequest requestWithURL: [NSURL 
URLWithString: @”http: //YOUR_TWITTER_USERNAME: YOUR_TWITTER_PASSWORD@twitter. com/
statuses/update. xml”]
    cachePolicy:NSURLRequestUseProtocolCachePolicy
    timeoutInterval: 60. 0] ;
  [theRequest setHTTPMethod: @”POST”] ;
  [theRequest setHTTPBody: [[NSString stringWithFormat: @”status=%@”, 
themessage] dataUsingEncoding: NSASCIIStringEncoding] ] ;
  NSURLResponse* response;
  NSError* error;
  NSData* result = [NSURLConnection sendSynchronousRequest:theRequest 
returningResponse: &response error: &error] ;
  NSLog( @”%@”, [[[ NSString alloc] initWithData: result 
encoding: NSASCIIStringEncoding] autorelease] ) ;