在我当前的应用程序中,我正在尝试使用.text
将Google SDK for iOS
文件上传到Google云端硬盘。但问题是每次我在Log
中收到错误消息 Insufficient Permission
,所以如果有人遇到过这个或对此类错误有所了解,请帮助我
这是我的代码,
GTLDriveFile *file = [GTLDriveFile object];
file.descriptionProperty = @"Uploaded from the iOS app.";
file.mimeType = @"text/*";
file.name=@"MyTextFile";
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"myTestFile" ofType:@"txt"];
GTLUploadParameters *uploadParameters = [GTLUploadParameters uploadParametersWithFileURL:[NSURL URLWithString:filePath] MIMEType:file.mimeType];
GTLQueryDrive *query = [GTLQueryDrive queryForFilesCreateWithObject:file uploadParameters:uploadParameters];
[self.service executeQuery:query completionHandler:^(GTLServiceTicket *ticket, id object, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
}else{
}
}];
执行此操作时记录打印
意外回复数据(上传到错误的网址?) {"错误":{"代码":403,"消息":"权限不足""数据": [{"结构域":"全球""理由":" insufficientPermissions""消息":&#34 ;权限不足"}]}," id":" gtl_3"}
过早失败:上传状态:"最终"位置:(空)
答案 0 :(得分:0)
我解决了这个问题
将您的范围更改为[kGTLAuthScopeDriveFile]
但是在第一步之后,我得到了同样的403错误
因为我手机中的APP的范围为[kGTLAuthScopeDriveMetadataReadonly]
重置我的应用程序或构建另一个模拟器
我认为首先使用范围readonly的auth密钥链是存在的,所以不写文件到谷歌驱动器
更改范围并重新验证后,它可以正常工作
如果您将kKeychainItemName
的值更改为另一个,则可以使用新范围重新验证
// If modifying these scopes, delete your previously saved credentials by
// resetting the iOS simulator or uninstall the app.
// private let scopes = [kGTLAuthScopeDriveFile]