我在我的iOS应用程序上使用SkyDrive,一切正常,直到我关闭我的应用程序,当我再次打开它时,我必须再次验证用户。我使用这段代码:
- (id)init
{
self = [super init];
if (self) {
self.clientID = @"my id";
self.scopes = @[@"wl.signin", @"wl.skydrive", @"wl.skydrive_update"];
self.liveClient = [[LiveConnectClient alloc] initWithClientId:self.clientID
scopes:self.scopes
delegate:self
userState:@"initialize"];
}
return self;
}
这是用于第一次登录用户,当我点击按钮时:
- (void)signInFromViewController:(UIViewController *)viewController
{
if (_liveClient) {
if (self.liveClient.session == nil) {
[self.liveClient login:viewController
scopes:self.scopes
delegate:self
userState:@"signin"];
}
}
}
和LiveAuthDelegate方法;
- (void)authCompleted:(LiveConnectSessionStatus)status
session:(LiveConnectSession *)session
userState:(id)userState
{
if ([userState isEqual:@"signin"]) {
if (session != nil) {
NSLog(@"Signed in");
} else {
NSLog(@"Auth error");
}
}
}
我该怎么办?当userState初始化时,authCompleted方法中的某些内容可能是什么?
答案 0 :(得分:2)
我几乎完全一样的问题。解决方案是将“wl.offline_access”范围添加到我的初始登录呼叫中。
源代码和其他详细信息可以在我发布的问题中找到,即:
iOS OneDrive (skydrive) app displays permissions dialog every time it runs
希望这有帮助!
DIZ