Я пишу приложение для iOS, чтобы делиться ссылками на веб-страницы по электронной почте, и в рамках этого я хочу, чтобы пользователи могли входить в Google Plus. У меня есть содержащее приложение, которое работает нормально, используя инструкции отсюда:
https://developers.google.com/+/mobile/ios/sign-in
и теперь я пытаюсь добавить расширение общего доступа, которое также может получить доступ к профилю пользователя Google+. Я начал с попытки добавить кнопку входа в расширение общего доступа, но я не думаю, что это сработает, потому что после нажатия кнопки вы выходите из приложения в браузер, чтобы принять разрешения, а затем есть нет способа перенаправить обратно на расширение общего доступа (или, по крайней мере, я не вижу способа).
Теперь я надеюсь, что пользователь может войти и принять разрешения в основном (содержащем) приложении, но затем использовать расширение общего доступа и по-прежнему входить в систему с тем же профилем. Я использую пользовательский UIViewController в расширении общего ресурса, и в качестве первой попытки я попытался использовать тот же идентификатор клиента в расширении общего ресурса, что и содержащее приложение, и вызвать это в методе viewDidLoad:
GPPSignIn *signIn = [GPPSignIn sharedInstance];
signIn.shouldFetchGooglePlusUser = YES;
signIn.shouldFetchGoogleUserEmail = YES;
signIn.clientID = kClientID;
signIn.scopes = @[ @"profile" ];
signIn.delegate = self;
if ([signIn hasAuthInKeychain]) {
NSLog(@"Has auth in keychain");
} else {
NSLog(@"No auth in keychain");
}
в содержащем приложении hasAuthInKeychain возвращает true, но в расширении общего доступа — false. Идентификатор клиента, который я использую, привязан к пакету основного приложения, поэтому я не уверен, смогу ли я в любом случае использовать его в расширении общего ресурса, но если я попытаюсь создать отдельный идентификатор клиента для общего ресурса расширение, то, вероятно, мне нужно будет снова пройти процесс авторизации?
Есть ли способ получить доступ к существующему токену аутентификации из основного приложения и использовать его в расширении общего доступа?