我正在使用MGTwitterEngine将Twitter功能添加到我的应用中。只需提示用户输入用户名和密码,然后开始发布即可。但奇怪的是,我注意到其他应用程序(例如Foursquare和Brightkite)要求您访问他们的网站,将您的Twitter帐户与您的foursquare / brightkite /任何帐户相关联。
他们为什么这样做?
我的应用程序是否有理由不提示用户输入Twitter用户名和密码,即使它很容易?
非常感谢! 特里斯坦
答案 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] ) ;