Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从iPhone登录Twitter时遇到困难_Iphone_Twitter_Integration_Mgtwitterengine - Fatal编程技术网

从iPhone登录Twitter时遇到困难

从iPhone登录Twitter时遇到困难,iphone,twitter,integration,mgtwitterengine,Iphone,Twitter,Integration,Mgtwitterengine,我正在使用MGTwitterEngine将Twitter功能添加到我的应用程序中。很容易提示用户输入用户名和密码,然后开始发布。然而,奇怪的是,我注意到其他应用程序(如Foursquare和Brightkite)要求你访问他们的网站,将你的Twitter帐户与你的Foursquare/Brightkite/任何帐户相关联 他们为什么这样做 为什么我的应用程序不应该提示用户输入Twitter用户名和密码,即使这很简单 非常感谢! TristanTwitter支持OAuth,它允许您访问他们的帐户,

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

他们为什么这样做

为什么我的应用程序不应该提示用户输入Twitter用户名和密码,即使这很简单

非常感谢!
Tristan

Twitter支持OAuth,它允许您访问他们的帐户,而无需直接询问他们的密码

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

另一方面,这些网站不存储用户密码;如果他们被黑客攻击,twitter可以轻易地禁用oauth凭据,在攻击者造成伤害之前将其锁定


使用OAuth;它更安全。

这是因为您使用的是用户名/密码。大多数新的Twitter应用程序都使用更强大的功能,这要求您访问Twitter.com以允许访问,但不需要用户名/密码。声称对基本身份验证的支持将很快被取消,因此您也应该使用OAuth。

只需替换您的\u TWITTER\u用户名和\u TWITTER\u密码即可。以下代码必须包含在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] ) ;