gpt4 book ai didi

email - Gmail API Users.messages : list

转载 作者:行者123 更新时间:2023-12-04 08:34:47 25 4
gpt4 key购买 nike

我正在使用电子邮件平台(使用 Objective-C 语言)并希望使用 GTMHTTPFetcher 和 GTMOAuth2Authentication 框架获取一些邮件。我正在使用 gmail API 来获取用户信息并获得适当的响应。

我想为用户的收件箱获取带有类别的电子邮件;我正在考虑使用系统级别的标签,例如 CATEGORY_社会 用于社交,类别_个人对于个人/主要等。

对于此功能,我使用以下 GET API:https://www.googleapis.com/gmail/v1/users/userId/messages具有适当参数的 API。为此,我正在使用谷歌的试用选项。
https://developers.google.com/gmail/api/v1/reference/users/messages/list#try-it

问题:我能够获得所有的 messageIDs/threadIDs,但无法在 google 开发者控制台中获得 labelIDs。我也从 Objective-C 代码中尝试过这个 GET 方法,但没有得到 labelID。

我已经附上了 Objective-C 代码的代码片段,你能帮我解决这个问题吗?

NSString *newAPIStr = @"";

newAPIStr = [NSString stringWithFormat:@"https://www.googleapis.com/gmail/v1/users/%@/messages?fields=messages(id,labelIds,threadId),nextPageToken&maxResults=%d",emailStr,maxResult];


NSURL *url = [NSURL URLWithString:newAPIStr];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPMethod:@"GET"];

GTMOAuth2Authentication *currentAuth = [GTMOAuth2ViewControllerTouch authForGoogleFromKeychainForName:kKeychainItemName clientID:kMyClientID clientSecret:kMyClientSecret];
GTMHTTPFetcher* myFetcher = [GTMHTTPFetcher fetcherWithRequest:request];
[myFetcher setAuthorizer:currentAuth];
[myFetcher beginFetchWithCompletionHandler:^(NSData *retrievedData, NSError *error) {
if (error != nil) {
// status code or network error
} else {
// succeeded
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:retrievedData options:kNilOptions error:&error];
NSArray* messageArray =[json objectForKey:@"messages"];
NSString *nextPageToken = [json objectForKey:@"nextPageToken"];
for (NSDictionary *dictionary in messageArray) {
[[EmailService instance].primaryMessages addObject:[dictionary objectForKey:@"id"]];
}

NSMutableArray *pArray = [[EmailService instance] primaryMessages];
[[NSUserDefaults standardUserDefaults] setObject:pArray forKey: ALL_FUNNL];
[[NSUserDefaults standardUserDefaults] setObject:nextPageToken forKey:@"PRIMARY_PAGE_TOKEN"];
[[NSUserDefaults standardUserDefaults] synchronize];

if([EmailService instance].primaryMessages.count < 5000)
[self getPrimaryMessages:emailStr nextPageToken:nextPageToken numberOfMaxResult:100];
else
NSLog(@"----- Primary messages count > %d",pArray.count);
}
}];}

获取输出如下:
{
"messages": [
{
"id": "146da54fe3dc089e",
"threadId": "146da54fe3dc089e"
},
{
"id": "146da41d9486982f",
"threadId": "146da41d9486982f"
},
...
}

最佳答案

message.list() 只返回消息的 id,这是非常标准的 REST 行为,以保持响应小而快。如果您还需要获取有关消息的更多信息(例如标签),则需要使用 message.get(id=$THAT_ID, format=MINIMAL) 之类的内容进行跟进,您可以使用批处理调用以获取许多信息消息并行。

关于email - Gmail API Users.messages : list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25484791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com