Всем добрый день.
Ситуация следующая:
Есть
@IBOutlet weak var googleButton: UIButton!
При нажатии на эту кнопку пользователь переходит на страницу авторизации на google и в этом моменте все работает нормально.
override func viewDidLoad() {
super.viewDidLoad()
GIDSignIn.sharedInstance().clientID = "866444479638-sknrnea2aiuv6npjlcf6o3l4231k44hq.apps.googleusercontent.com"
GIDSignIn.sharedInstance().shouldFetchBasicProfile = true
GIDSignIn.sharedInstance().scopes = ["profile", "email"]
GIDSignIn.sharedInstance().delegate = self
GIDSignIn.sharedInstance().uiDelegate = self
}
Вот action при нажатии кнопки:
@IBAction func googleSignInClicked(sender: UIButton) {
var googleSignIn: GIDSignIn!
googleSignIn = GIDSignIn.sharedInstance();
googleSignIn.shouldFetchBasicProfile = true;
GIDSignIn.sharedInstance().signInSilently()
googleSignIn.signIn() }
И вот собственно функция, обрабатывающая singIn
func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) {
if (error == nil) {
print(user.userID )
print(user.authentication.idToken)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let MainView = storyboard.instantiateViewControllerWithIdentifier("SuccedView")
self.presentViewController(MainView, animated: true, completion: nil)
} else {
print("\(error.localizedDescription)")
}
}
При нажатии на кнопку и срабатывания GIDSignIn.sharedInstance().signInSilently() мы имеем вот такую ошибку:
The operation couldn’t be completed. (com.google.GIDSignIn error -4.)
Просто же GIDSignIn.sharedInstance().signIn переводит нас на страницу введения логина и пароля и на этом вся ее жизнь заканчивается.
В AppDelegate у меня вот такая камбала:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
NSURLProtocol.registerClass(TrainStarURLProtocol)
return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
}
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
return GIDSignIn.sharedInstance().handleURL(url,
sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey] as! String,
annotation: options[UIApplicationOpenURLOptionsAnnotationKey])
}
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
var flag: Bool = false
// handle Facebook url scheme
if let wasHandled:Bool = FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
{
flag = wasHandled }
if let googlePlusFlag: Bool = GIDSignIn.sharedInstance().handleURL(url, sourceApplication: sourceApplication!, annotation: annotation) {
flag = googlePlusFlag
}
return flag
}
В конечном итоге мне нужно получить токен пользователя G+ для регистрации его на сервере, но пока я получаю лишь шиш.
Подскажите, куда смотреть?
P.S. Исчезли логи функции
override class func canInitWithRequest(request: NSURLRequest) -> Bool {
print("Request #\(requestCount++): URL = \(request.URL!.absoluteString) ")
}
Никто с подобным не сталкивался после танцев с g+?