drafts.create в target-c с помощью GTLQueryGmail
Кажется, я не совсем понимаю, как использовать GTMMIMEDocument.h для установки необработанных данных сообщения для нового черновика. В примере, который я опубликую ниже, я пытаюсь установить заголовки для "Кому", "От" и "Тема", но, похоже, они попадают в данные тела сообщения, а не в другие заголовки.
Любая помощь в том, что я делаю неправильно, очень ценится. Благодарю.
Метод запроса:
//message body to save
NSData *messageBody = [self.messagebox.text dataUsingEncoding:NSUTF8StringEncoding];
//create mimemessage
GTMMIMEDocument *email = [GTMMIMEDocument MIMEDocument];
NSArray *headers = @[@"To",@"From",@"Subject"];
NSArray *values = @[@"listserveproject2014dh@googlegroups.com",self.auth.userEmail,@"test email"];
NSDictionary *partheaders = [NSDictionary dictionaryWithObjects:values forKeys:headers];
[email addPartWithHeaders:partheaders body:messageBody];
//generate input stream
NSInputStream *inputstream = nil;
unsigned long long length = nil;
NSString *boundary = [[NSString alloc] init];
[email generateInputStream:&inputstream length:&length boundary:&boundary];
//get rawdata
uint8_t *buffer = malloc(sizeof(uint8_t));
[inputstream read:buffer maxLength:NSUIntegerMax];
NSData *rawdata = [NSData dataWithBytes:buffer length:length];
//create query
GTLGmailDraft *draft = [[GTLGmailDraft alloc] init];
GTLGmailMessage *message = [[GTLGmailMessage alloc] init];
message.raw = GTLEncodeWebSafeBase64(rawdata);
draft.message = message;
//GTLUploadParameters *parameters = [GTLUploadParameters uploadParametersWithData:rawdata MIMEType:@"message/rfc822"];
GTLQueryGmail *query = [GTLQueryGmail queryForUsersDraftsCreateWithUploadParameters:nil];
query.draft = draft;
...execute query
Это ответ, который он получает:
{
"id": "r-2881802111797802342",
"message": {
"id": "149a2aa34d4def95",
"threadId": "149a2aa34d4def95",
"labelIds": [
"DRAFT"
],
"snippet": "--END_OF_PART From: dhill4554@gmail.com Subject: test email To: listserveproject2014dh@googlegroups.",
"historyId": "919257",
"payload": {
"partId": "",
"mimeType": "text/plain",
"filename": "",
"headers": [
{
"name": "Received",
"value": "from 58891527906-b79qq2lqjudtsj32n8ldpkup78uquol6.apps.googleusercontent.com named unknown by gmailapi.google.com with HTTPREST; Tue, 11 Nov 2014 22:21:43 -0800"
},
{
"name": "Date",
"value": "Tue, 11 Nov 2014 22:21:43 -0800"
},
{
"name": "Message-Id",
"value": "<CAOabQUdz8wzxQ29HbJq6xeRsSuu1iH6iRi9=A23vYHJencNdoQ@mail.gmail.com>"
},
{
"name": "From",
"value": "dhill4554@gmail.com"
}
],
"body": {
"size": 136,
"data": "LS1FTkRfT0ZfUEFSVA0KRnJvbTogZGhpbGw0NTU0QGdtYWlsLmNvbQ0KU3ViamVjdDogdGVzdCBlbWFpbA0KVG86IGxpc3RzZXJ2ZXByb2plY3QyMDE0ZGhAZ29vZ2xlZ3JvdXBzLmNvbQ0KDQptZXNzYWdlDQotLUVORF9PRl9QQVJULS0NCg=="
}
},
"sizeEstimate": 466
}
}
А вот как выглядят необработанные данные в декодированном виде (тело сообщения - "сообщение"):
--END_OF_PART
From: dhill4554@gmail.com
Subject: test email
To: listserveproject2014dh@googlegroups.com
message
--END_OF_PART--