在我的 ios 项目中集成 Box IOS sdk
Posted
技术标签:
【中文标题】在我的 ios 项目中集成 Box IOS sdk【英文标题】:Integrate Box IOS sdk in my ios project 【发布时间】:2014-03-20 10:46:09 【问题描述】:我正在尝试将 BOX V2 ios SDK 集成到我的 ios 项目中,集成很好,但是当我尝试登录时,输入用户名和密码并授予访问权限后,我得到一个白屏,并且boxAPIAuthenticationDidSucceed 方法没有被调用,她是我的代码 连接方法:
-(void) connectToBox
[BoxSDK sharedSDK].OAuth2Session.clientID = @"my-client-id";
[BoxSDK sharedSDK].OAuth2Session.clientSecret = @"my-client-secret";
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(boxAPIAuthenticationDidSucceed:)
name:BoxOAuth2SessionDidBecomeAuthenticatedNotification
object:[BoxSDK sharedSDK].OAuth2Session];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(boxAPIAuthenticationDidFail:)
name:BoxOAuth2SessionDidReceiveAuthenticationErrorNotification
object:[BoxSDK sharedSDK].OAuth2Session];
self.LoginCotroller = [[BoxAuthorizationViewController alloc] initWithAuthorizationURL:authorizationURL redirectURI:redirectURI];
[self presentViewController:self.LoginCotroller animated:YES completion:nil];
我实现了这两种方法:
- (void)boxAPIAuthenticationDidSucceed:(NSNotification *)notification;
- (void)boxAPIAuthenticationDidFail:(NSNotification *)notification;
以及通知方法:
#pragma mark - Handle OAuth2 session notifications
- (void)boxAPIAuthenticationDidSucceed:(NSNotification *)notification
BoxOAuth2Session *session = (BoxOAuth2Session *) notification.object;
NSLog(@"Received OAuth2 successfully authenticated notification");
NSLog(@"Access token (%@) expires at %@", session.accessToken, session.accessTokenExpiration);
NSLog(@"Refresh token (%@)", session.refreshToken);
dispatch_sync(dispatch_get_main_queue(), ^
[self.LoginCotroller dismissViewControllerAnimated:YES completion:nil];
);
- (void)boxAPIAuthenticationDidFail:(NSNotification *)notification
NSLog(@"Received OAuth2 failed authenticated notification");
NSString *oauth2Error = [[notification userInfo] valueForKey:BoxOAuth2AuthenticationErrorKey];
NSLog(@"Authentication error (%@)", oauth2Error);
dispatch_sync(dispatch_get_main_queue(), ^
[self dismissViewControllerAnimated:YES completion:nil];
);
我不知道我的代码有什么问题。所以如果有人可以提供帮助。谢谢
【问题讨论】:
一旦您输入您的凭据,它将显示一个屏幕,您将有 2 个选项 1. 授予 2.decline 您是否能够看到此屏幕。如果是,那么一旦您单击授权按钮,它将调用 Web 服务并以 POST 方法获取访问令牌(这将花费 @30-50 秒) 我明白了,我接受该应用程序访问和编辑我的文件。 2分钟后什么也没发生 删除应用程序并再次运行同样的事情今天发生在我身上,现在它正在工作 是的,我也这样做了,但仍然是同样的问题,你能告诉我你的代码吗?所以我可以看到我的代码有什么问题? 这与我们无关。它仅在 SDK 内部。给我你的电子邮件 id 我会发送我的邮箱代码 charangiri.p@gmail.com 【参考方案1】:我建议将您的控制器添加为 BoxOAuth2SessionDidRefreshTokensNotification 的观察者,并调用 boxAPIAuthenticationDidSucceed: 方法。 BoxOAuth2SessionDidRefreshTokensNotification 在创建/刷新新的访问令牌时发布。
【讨论】:
以上是关于在我的 ios 项目中集成 Box IOS sdk的主要内容,如果未能解决你的问题,请参考以下文章
我们可以在 IOS 5.0 中集成 Facebook SDK 3.1 吗? [复制]
如何在 iOS 应用程序中集成 Recurly 网关 [关闭]