我正在开发一个基于Objective-C语言的电子邮件平台,并希望使用GTMHTTPFetcher和GTMOAuth2Authentication框架来获取一些邮件。我使用gmail API获取用户信息并获得适当的响应。
我想要获取用户收件箱中带有类别的电子邮件;我考虑使用系统级标签,例如CATEGORY_SOCIAL用于社交、CATEGORY_PERSONAL用于个人/主要等。
为此功能,我使用以下GET API:https://www.googleapis.com/gmail/v1/users/userId/messages API,并使用正确的参数。我在google的“试用”选项中使用了这个API。 https://developers.google.com/gmail/api/v1/reference/users/messages/list#try-it 问题:我能够获取所有的messageIDs/threadIDs,但无法在google开发者控制台中获取labelIDs。我也尝试了从Objective-C代码中使用这个GET方法,但没有获取到labelIDs。
我附上了Objective-C代码片段,请帮我解决这个问题。
我想要获取用户收件箱中带有类别的电子邮件;我考虑使用系统级标签,例如CATEGORY_SOCIAL用于社交、CATEGORY_PERSONAL用于个人/主要等。
为此功能,我使用以下GET API:https://www.googleapis.com/gmail/v1/users/userId/messages API,并使用正确的参数。我在google的“试用”选项中使用了这个API。 https://developers.google.com/gmail/api/v1/reference/users/messages/list#try-it 问题:我能够获取所有的messageIDs/threadIDs,但无法在google开发者控制台中获取labelIDs。我也尝试了从Objective-C代码中使用这个GET方法,但没有获取到labelIDs。
我附上了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"
},
...
}