集成Office-365-SDK-for-iOS

时间:2015-05-01 10:24:41

标签: ios azure xcode6 office365

我正在创建一个iOS应用程序,我在其中集成了来自outlook365的导入联系人Office-365-SDK-for-iOS。我已成功通过Microsoft Azure进行身份验证。但是,当我提取用户和用户的联系人时,会出现以下错误 -

Error Domain=Error in the Request Code=401 "The operation couldn’t be completed. (Error in the Request error 401.)

这是我的身份验证代码和获取客户端

//Acquire access and refresh tokens from Azure AD for the user.
-(void)acquireAuthTokenWithResourceId:(NSString *)resourceId completionHandler:(void (^)(BOOL authenticated))completionBlock
{
    ADAuthenticationError *error;
    self.authContext = [ADAuthenticationContext authenticationContextWithAuthority:OutlookAuthority error:&error];
    [self.authContext acquireTokenWithResource:OutlookRsourceId
                                      clientId:OutlookClientId
                                   redirectUri:[NSURL URLWithString:OutlookRedirectUrl]
                               completionBlock:^(ADAuthenticationResult *result)
    {
                                   if (AD_SUCCEEDED != result.status)
                                   {
                                       completionBlock(NO);
                                   }
                                   else
                                   {
                                       NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
                                       [userDefaults setObject:result.tokenCacheStoreItem.userInformation.userId
                                                        forKey:@"LogInUser"];
                                       [userDefaults synchronize];


                                       self.dependencyResolver = [[ADALDependencyResolver alloc] initWithContext:self.authContext
                                                                                                      resourceId:OutlookRsourceId
                                                                                                        clientId:OutlookClientId
                                                                                                     redirectUri:[NSURL URLWithString:OutlookRedirectUrl]];
                                       completionBlock(YES);
                                   }
                               }];
}



- (void) getClient:(void (^) (MSOutlookServicesClient *))callback
{

    OutlookAuthManager* authenticationController = [OutlookAuthManager sharedInstance];

    [authenticationController acquireAuthTokenWithResourceId:OutlookRsourceId completionHandler:^(BOOL authenticated)
    {

        if (authenticated)
        {
            callback([[MSOutlookServicesClient alloc] initWithUrl:@"https://outlook.office365.com/api/v1.0" dependencyResolver:[authenticationController dependencyResolver]]);
        }
        else
        {
            NSLog(@"Error in authentication");
        }
    }];
}

以下我收到用户 -

[[OutlookAuthManager sharedInstance] getClient:^(MSOutlookServicesClient *client)
     {
         NSURLSessionTask* task = [[client getMe] readWithCallback:^(MSOutlookServicesUser *user, NSError *error)
                                   {
                                       if(error == nil)
                                       {
                                           dispatch_async(dispatch_get_main_queue(),
                                                          ^{
                                                              NSLog(@"------>%@",user.DisplayName);
                                                              NSLog(@"------>%@",user.Alias);
                                                              NSLog(@"------>%@",user.Id);
                                                              NSLog(@"------>%@",user.MailboxGuid);

                                                          });
                                       }
                                       else
                                       {

                                           [client.resolver.logger logMessage:error.description withLevel:LOG_LEVEL_ERROR];
                                       }
                                   }];

         [task resume];
     }];

但是这个错误正在到来。 请帮我 感谢

1 个答案:

答案 0 :(得分:1)

validating your access token开始。由于它是401,因此可能存在问题。