在我的 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 中集成 PayTm 支付

我们可以在 IOS 5.0 中集成 Facebook SDK 3.1 吗? [复制]

【iOS】项目中集成QQ登录与分享

如何在 iOS 应用程序中集成 Recurly 网关 [关闭]

如何在 iOS 混合应用程序中集成 card.io sdk?

iOS - 如何在我的应用程序中集成蓝牙设备