Сбой gtm-oauth2 в Mac OSX при аутентификации с помощью Instagram API
Я создаю небольшой клиент Instagram для личного использования на Mac OSX. В настоящее время я использую gtm-oauth2 для получения токена oauth2 из Instagram. Я следую инструкции, предоставленной источником, чтобы получить этот токен. У меня это работает на 90%. WebView загружается с данными аутентификации, и я могу войти в свою учетную запись, и появляется экран разрешений, спрашивающий, хочу ли я предоставить моему приложению доступ. Проблема, с которой я сталкиваюсь, заключается в том, что после проверки подлинности, независимо от того, "Я" или "Отменить", приложение завершает работу без трассировки стека или дополнительной информации. Единственная информация, которую я получаю об этом исключении: "Поток 1: EXC_BAD_ACCESS (code = 1, address=0x4c1)", и кажется, что поток делает что-то связанное с WebCore::ResourceLoader, но это связка ASM, поэтому я Я понятия не имею, где этот вызов на самом деле происходит. Возможно я не вызываю windowController должным образом? У меня есть мой код, включенный ниже.
- (void)signIntoInstagram {
NSURL *tokenURL =[NSURL URLWithString:kTOKENIURl];
// Set up the OAuth request
GTMOAuth2Authentication *auth = [GTMOAuth2Authentication
authenticationWithServiceProvider:@"Instagram"
tokenURL:tokenURL
redirectURI:kREDIRECTURI
clientID:KCLIENTID
clientSecret:KCLIENTSERCRET
];
// Specify the appropriate scope string, if any, according to the service's API documentation
auth.scope = @"basic";
NSURL *authURL = [NSURL URLWithString:KAUTHURL];
// Display the authentication view
GTMOAuth2WindowController *windowController;
windowController = [GTMOAuth2WindowController controllerWithAuthentication:auth
authorizationURL:authURL
keychainItemName:kKeychainItemName
resourceBundle:nil];
// optional: display some html briefly before the sign-in page loads
NSString *html = @"<html><body><div align=center>Loading sign-in page...</div></body></html>";
[windowController setInitialHTMLString:html];
[windowController signInSheetModalForWindow:_window
delegate:self
finishedSelector:@selector(windowController:finishedWithAuth:error:)];}
Если я вставлю точку останова в windowController: finishWithAuth: error: метод, приложение достигнет ее. Тем не менее, он все еще падает после того, как я пробегаюсь, что мне кажется чем-то вроде асинхронной операции, вызывающей ошибку. Надеюсь, я просто упускаю что-то простое здесь; Я не могу себе представить, что есть серьезный недостаток в проекте Google OAuth.
1 ответ
Я нашел это в группе Google после того, как у меня возникла та же проблема, https://groups.google.com/forum/. Существует также проблема, зарегистрированная для этого https://code.google.com/p/gtm-oauth/issues/detail?id=11
В основном я закомментировал строку 331 GTMOAuth2WindowController.m, и это сработало. Вы также можете добавить свой голос к проблеме, и, возможно, Google исправит это.