"试一试"部分文档允许我播放API,字段选择器允许我选择很多字段,例如标题,原始等.但是当尝试使用API时,它们都没有显示出来.我看到的唯一的东西仍然只是消息ID和线程ID.
https://developers.google.com/gmail/api/v1/reference/users/messages/list
例如以下内容:
GET https://www.googleapis.com/gmail/v1/users/{user_id}/messages?**fields=messages(historyId%2Cid%2Cpayload%2Craw%2CsizeEstimate%2Csnippet%2CthreadId)**&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)
返回:
{
"messages": [
{
"id": "146da54fe3dc089e",
"threadId": "146da54fe3dc089e"
},
{
"id": "146da41d9486982f",
"threadId": "146da41d9486982f"
},
...
}
Run Code Online (Sandbox Code Playgroud)
但我希望还会返回所请求的额外字段.
有没有办法让这个工作?我知道有一个单独的方法来获取单个消息,但是如果可能的话就像让它们批处理一样.
messages.list不仅仅返回标识符.不确定字段选择器是什么,但我不相信它被使用.
但是,您可以使用批处理的message.get在第二次调用中一次检索多条消息:
批处理请求由多个API调用组合成一个HTTP请求组成.本节详细介绍了批处理语法; 后来,有一个例子.
注意:一组n个请求一起计入n个请求,而不是一个请求.批处理请求在处理之前被分成一组请求.
来自:https: //developers.google.com/storage/docs/json_api/v1/how-tos/batch
使用Gmail API和批处理,这里有一些示例代码:
GTLBatchQuery *batchQuery = [GTLBatchQuery batchQuery];
[gmailMessageIds enumerateObjectsUsingBlock:^(NSNumber *messageId, NSUInteger idx, BOOL *stop) {
GTLQueryGmail *query = [GTLQueryGmail queryForUsersMessagesGet];
query.userId = self.account.email;
query.identifier = [NSString stringWithFormat:@"%llx", [messageId unsignedLongLongValue]];
query.format = kGTLGmailFormatRaw;
[batchQuery addQuery:query];
}];
[self.gmailService executeQuery:batchQuery completionHandler:^(GTLServiceTicket *ticket, GTLBatchResult *result, NSError *error) {
NSArray *gmailMessages = result.successes.allValues; // This is an array of GTLGmailMessage objects
...
}];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3641 次 |
| 最近记录: |