我添加了公告应用程序,并添加了一些项目,现在我想从公告列表中获取项目,因此我使用了以下代码

token_Obtained_During_first_time_Login:这是我使用ADAuthenticationContext类的acquireTokenWithResource方法首次登录时获得的令牌。

- (void)getClientList {

NSString *appToken = [[NSUserDefaults standardUserDefaults]
 valueForKey:@"token_Obtained_During_first_time_Login"];
NSString* hostName = @"https://myTenant.sharepoint.com/sites/myApp";


OAuthentication *credentials = [[OAuthentication alloc] initWith:appToken];
ListClient *client = [[ListClient alloc]
                  initWithUrl:hostName
                  credentials:credentials];

NSURLSessionTask* task =  [client getListItems:@"MyAnnouncements"
callback:^(NSMutableArray *listItems, NSError *error)  {
    if (error==nil) {
    NSLog(@"%@",listItems);
    }
}];

[task resume];

}


我什至调试了365代码,它为我提供了以下getListItems的URL:回调方法

https://myTenant.sharepoint.com/sites/myApp/_api/lists/GetByTitle('MyAnnouncements')/Items


我什至使用示例代码随附的getTokenWith方法尝试了相同的方法

- (void)getAnnouncementList:(void (^)(ListClient *))callback{
NSString* hostName = @"https://myTenant.sharepoint.com";

[self getTokenWith:hostName :true completionHandler:^(NSString *token) {
OAuthentication *credentials = [[OAuthentication alloc] initWith:token];

callback([[ListClient alloc]initWithUrl:hostName credentials:credentials]);
 }];
}


但仍然没有运气,我得到的列表为零

请指导如何解决该问题,我什至已经验证了Azure目录中的权限,一切似乎都可以读取一个驱动器,邮件和日历的数据,但是列表是我无法解决的地方。

每次我调用上面的代码时,我都会得到响应nil,不确定是否传递了错误,我的猜测是令牌。

最佳答案

我通过更改Office 365的ListClient.m文件中存在的apiUrl解决了此问题。

我所做的全部更改为

const NSString *apiUrl = @"/sites/mobileApp/_api/web/Lists";


进行上述更改就可以了,现在我可以访问所有列表数据了。

关于ios - Office 365 iOS:无法从Office 365 SDK中获取列表项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28456595/

10-12 14:59