Office 365 iOS:无法从 Office 365 SDK 获取列表项
Office 365 iOS: Not able to fetch List Items from Office 365 SDK
我已经添加了公告应用程序并向其中添加了一些项目,现在我想从我的公告列表中获取这些项目,所以我使用了以下代码
token_Obtained_During_first_time_Login: 这是我第一次使用 ADAuthenticationContext[=30= 的 acquireTokenWithResource 方法登录时获得的令牌] class
- (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 代码,它为我提供了以下 URL getListItems: 回调方法
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 Directory 中的权限,一切似乎都很好,我能够获取一个驱动器、邮件和日历的数据,但列表是我卡住的地方。
每次我调用上面的代码时,我得到的响应都是零,我不确定传递的是什么错误,我猜是令牌。
我通过更改 Office 365 ListClient.m 文件中的 apiUrl 解决了这个问题。
我所做的只是将其更改为
const NSString *apiUrl = @"/sites/mobileApp/_api/web/Lists";
进行上述更改后成功了,现在我可以访问所有列表数据了。
我已经添加了公告应用程序并向其中添加了一些项目,现在我想从我的公告列表中获取这些项目,所以我使用了以下代码
token_Obtained_During_first_time_Login: 这是我第一次使用 ADAuthenticationContext[=30= 的 acquireTokenWithResource 方法登录时获得的令牌] class
- (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 代码,它为我提供了以下 URL getListItems: 回调方法
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 Directory 中的权限,一切似乎都很好,我能够获取一个驱动器、邮件和日历的数据,但列表是我卡住的地方。
每次我调用上面的代码时,我得到的响应都是零,我不确定传递的是什么错误,我猜是令牌。
我通过更改 Office 365 ListClient.m 文件中的 apiUrl 解决了这个问题。
我所做的只是将其更改为
const NSString *apiUrl = @"/sites/mobileApp/_api/web/Lists";
进行上述更改后成功了,现在我可以访问所有列表数据了。