IOS:如何使用Google drive sdk库将数据(NSData)上载到特定的Google drive文档(application/vnd.Google apps.document)

IOS:如何使用Google drive sdk库将数据(NSData)上载到特定的Google drive文档(application/vnd.Google apps.document),ios,google-drive-api,Ios,Google Drive Api,我将Google drive sdk与iOS应用程序集成。但我不知道如何将数据(NSData类型)上传到谷歌硬盘特定文档(文档的mimeType为'application/vnd.Google-apps.document,我希望上传混合数据(图像+文本)。) 这是代码。但此代码是发生错误的。请帮帮我。 -错误消息:Domain=com.google.GTLJSONRPCErrorDomain Code=400(请求错误) 您指定的mime类型:application/vnd.google-app

我将Google drive sdk与iOS应用程序集成。但我不知道如何将数据(NSData类型)上传到谷歌硬盘特定文档(文档的mimeType为'application/vnd.Google-apps.document,我希望上传混合数据(图像+文本)。)

这是代码。但此代码是发生错误的。请帮帮我。 -错误消息:Domain=com.google.GTLJSONRPCErrorDomain Code=400(请求错误)


您指定的mime类型:application/vnd.google-apps.document用于google文档。你不应该碰那些东西。您想创建自己的文档。

只是想确定一下:您是否使用了正确的mime类型?您的帖子中有一个拼写错误: “application/vnd.google apps.docuemnt”,这对于他们的API来说是不可接受的mime类型

NSMutableData *body = [NSMutableData data];
NSString *boundary = [NSString stringWithFormat:@"---------------------------14737809831466499882746641449"];
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];

GTLDriveFile *newFile = [GTLDriveFile object];
newFile.mimeType = @"application/vnd.google-apps.docuemnt";

// another text parameter
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"parameter2\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"body text2" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];

// image file
[body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"imagename\"; filename=\"image.jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Type: image/jpeg\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:UIImageJPEGRepresentation([UIImage imageNamed:@"folder1"], 1.0)]];
[body appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];

// text parameter
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"parameter1\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"body text" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];

// close form
[body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];[body appendData:@""]; GTLUploadParameters *uploadParameters = nil;


uploadParameters = [GTLUploadParameters uploadParametersWithData:body MIMEType:contentType];
GTLQueryDrive *query = nil;
    // This is a new file, instantiate an insert query.
    query = [GTLQueryDrive queryForFilesInsertWithObject:newFile uploadParameters:uploadParameters];

query.convert = YES;

[self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket,
                                                          GTLDriveFile *updatedFile,
                                                          NSError *error)
 {..}