在iOS上使用Twitter登录

我在iOS上登录Twitter时遇到问题。 如果用户在“设置”应用程序中设置了帐户,则会收到以下错误:

[TwitterKit]确实遇到错误消息“用户的系统帐户凭据无效。”:错误Domain = TWTRLogInErrorDomain Code = 7“系统帐户凭据不再有效,需要在”设置“应用中进行更新。 UserInfo = {NSLocalizedDescription =系统帐户凭据不再有效,需要在“设置”应用中更新。,NSLocalizedRecoverySuggestion =已提示用户访问“设置”应用。}

凭证有效,我仔细检查。 如果“设置”应用中没有帐户,我的登录信息会按预期进行。 我称之为的方法是:

Twitter.sharedInstance().logInWithCompletion {(session, error) -> Void in 

 Twitter.sharedInstance().logIn { session, error in if (session != nil) { print("signed in as \(session!.userName)"); let client = TWTRAPIClient.withCurrentUser() let request = client.urlRequest(withMethod: "GET", url: "https://api.twitter.com/1.1/account/verify_credentials.json", parameters: ["include_email": "true", "skip_status": "true"], error: nil) client.sendTwitterRequest(request) { response, data, connectionError in print(response) } } else { print("error: \(error!.localizedDescription)"); } } } 

这有助于我在swift3

我认为以下方法也应该有效。

 Twitter.sharedInstance().logIn(withCompletion: {(session: TWTRSession, error: Error) -> Void in if session { print("@\(session.userName()) logged in! (\(session.userID()))") } else { print("error: \(error!.localizedDescription)") } }) 

它需要来自Settings Twitter应用程序的帐户凭据。

更多内容: – AppDelegate.m

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]) -> Bool { //Twitter Twitter.sharedInstance().start(with: kTwitterConsumerKey, consumerSecret: kTwitterConsumerSecret) Fabric.with([Twitter.sharedInstance()]) return true } 
  • 的Info.plist

在此处输入图像描述

通过使用方法解决了我的问题:

 Twitter.sharedInstance().logInWithMethods(TWTRLoginMethod.WebBased, completion: {(session, error) -> Void in 

但仍然认为其他方法也应该有效。

我这样做就像使用下面的代码,可能是帮助

  TWTRTwitter.sharedInstance().logIn(with: self, completion: { session, error in if (session != nil) { let client = TWTRAPIClient.withCurrentUser() } }