RestKit Oauth 2 Google API

Я пытаюсь получить доступ к API Google Диска с помощью RestKit на iOS, но у меня возникают проблемы с аутентификацией Oauth.

Я следил за вики-страницей по этому вопросу здесь: Поддержка Oauth На RestKit

В основном мы создаем клиент следующим образом:

oauthClient = [RKClientOAuth clientWithClientID:[Client Id] secret:[Client Secret] delegate:[Your Delegate]];
[oauthClient setAuthorizationCode:[User Authorization Code]];
[oauthClient setAuthorizationURL:[Authorization Endpoint]];
[oauthClient setCallbackURL:[Your application callbackurl]];
[oauthClient validateAuthorizationCode];

И получаем токен доступа на делегате в методе

- (void)OAuthClient:(RKOAuthClient *)client didAcquireAccessToken:(NSString *)token

Здесь мы можем создать ObjectManager для выполнения запросов и всех других операций.

RKObjectManager* objectManager = [RKObjectManager sharedManager];
objectManager.client.baseURL = @"YOUR API URL";
objectManager.client.OAuth2AccessToken = @"YOUR ACCESS TOKEN";
objectManager.client.authenticationType = RKRequestAuthenticationTypeOAuth2;

При всем этом я столкнулся с несколькими проблемами.

  • Во-первых, как мы можем получить код авторизации, необходимый здесь:

    [oauthClient setAuthorizationCode:[User Authorization Code]];
    

    У меня не было проблем с идентификатором клиента, секретом клиента, конечной точкой авторизации, URL-адресом обратного вызова и URL-адресом API, поскольку они в основном предоставляются в API консоли Google, но я не знаю, как это получить.

  • Во-вторых, токен доступа будет временным токеном доступа или токеном обновления, как они названы в API Google? Если это первое, как мы можем получить Refresh Token?

Я пытался сделать это с помощью RestKit, но могут быть и лучшие способы, поэтому я открыт для других идей. Я не могу найти много информации о поддержке Oauth в Restkit.

Заранее спасибо


person Tonidero    schedule 27.06.2012    source источник
comment
Вы уже нашли решение этой проблемы? Я столкнулся с этой же проблемой при работе с Restkit. Честно говоря, я действительно смущен, так как вики звучит так, будто мне нужно предоставить код авторизации в первом запросе. Однако, насколько я знаю, Oauth2 работает, когда сервер аутентификации отвечает кодом авторизации в ответ на первый запрос, который затем используется во втором запросе для окончательного получения токена доступа.   -  person Vlad    schedule 12.10.2012


Ответы (3)


Вы можете использовать клиентскую библиотеку Google Objective-C для Drive API, включая вход OAuth 2.

http://code.google.com/p/google-api-objectivec-client/

person grobbins    schedule 28.06.2012

Вы должны использовать библиотеку Google ObjectiveC для доступа к Google Drive APi. https://developers.google.com/drive/quickstart-ios

person Abdul Rehman    schedule 28.11.2012

Вы начинаете со своим идентификатором клиента и секретом клиента, вы направляете пользователя на сервер авторизации владельца ресурса. Сервер авторизации и пользователь проверяют друг друга, и вашему приложению возвращается код авторизации. Вы возвращаетесь на сервер авторизации и обмениваете код авторизации на токен доступа.

Если токен доступа ограничен по времени, то вы должны использовать токен обновления для запроса нового токена доступа, когда вы обнаружите, что срок действия токена доступа истек.

person Mark S.    schedule 04.07.2012