我正在尝试在 iOS 上使用 RestKit 访问 Google Drive API,但我遇到了 Oauth 身份验证问题。
我一直在关注他们在此主题上的 Wiki 页面: Oauth Support On 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]];
我没有遇到客户端 ID、客户端密码、授权端点、回调 URL 和 API URL 的问题,因为它们主要在谷歌控制台 API 中提供,但我不知道如何获取。
其次,访问令牌将是临时访问令牌还是刷新令牌,因为它们在谷歌 API 中被命名?如果是第一个,我们如何获得Refresh Token?
我一直在尝试用 RestKit 做到这一点,但可能有更好的方法,所以我对其他想法持开放态度。我在 Restkit 中找不到太多关于 Oauth 支持的信息。
预先感谢