Я пытаюсь получить доступ к 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.
Заранее спасибо