我在iOS上登录Twitter时遇到问题。如果用户在“设置”应用程序中设置了帐户,则会出现以下错误:
[TwitterKit]确实在消息"用户的系统帐户中遇到错误 凭据无效。":错误域= TWTRLogInErrorDomain代码= 7 "系统帐户凭据不再有效且需要 在“设置”应用中进行更新。"的UserInfo = {NSLocalizedDescription =该 系统帐户凭据不再有效且需要 在“设置”应用中更新。,NSLocalizedRecoverySuggestion =用户 系统已提示您访问“设置”应用。}
凭证有效,我仔细检查。 如果“设置”应用中没有帐户,我的登录信息会按预期进行。 我称之为的方法是:
Twitter.sharedInstance().logInWithCompletion {(session, error) -> Void in
答案 0 :(得分:1)
我认为以下方法也应该有用。
Twitter.sharedInstance().logIn(withCompletion: {(session: TWTRSession, error: Error) -> Void in
if session {
print("@\(session.userName()) logged in! (\(session.userID()))")
}
else {
print("error: \(error!.localizedDescription)")
}
})
它需要设置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
}
答案 1 :(得分:1)
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
有帮助答案 2 :(得分:0)
使用方法解决了我的问题:
Twitter.sharedInstance().logInWithMethods(TWTRLoginMethod.WebBased, completion: {(session, error) -> Void in
但仍然认为其他方法也应该有效。
答案 3 :(得分:0)
我做到了,就像使用下面的代码一样,可能是帮助
TWTRTwitter.sharedInstance().logIn(with: self, completion: { session, error in
if (session != nil) {
let client = TWTRAPIClient.withCurrentUser()
}
}