Сбой 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 исправит это.

Другие вопросы по тегам