Anyone have any ideas why I'm getting this behavior?
On Sep 17, 3:11 pm, Jason <[email protected]> wrote:
> As an update to this. I just tried setting my max results to 4000
> (instead of 100) and it appears to have worked. But I was under the
> impression setting it to a smaller number was fine.
>
> On Sep 17, 2:54 pm, Jason <[email protected]> wrote:
>
> > I'm having an issue with the gData Contact APIs in Objective C on an
> > iPhone app. I only recently updated from the original Contact APIs to
> > v3.0. When doing so, the contact fetch is now returning different
> > results for one of the users (it still works correctly for others) of
> > our software. I am doing a Full Feed contact fetch. After the fetch
> > completes and the GDataFeedContact object is returned, if I call
>
> > [object totalResults];
>
> > on that object I get the total number of contacts. in this case
> > 3900+. This number is correct. If I then call
>
> > [[object entries] count];
>
> > on that object, I only get a count of 2700. With the old API, the
> > entry count was the same as the totalResults count (I have a copy of
> > the project using the old APIs and have confirmed this). So with the
> > new APIs I am missing over 1200 contacts for some reason. And none of
> > my code has changed. I've looked at the changes and checked the
> > migration requirements for the new API, but I have not seen anything
> > related to this. I am relatively new to Objective C and iPhone
> > development, so I could have easily missed/overlooked something. Is
> > there a change I need to make for contact fetching? Here is my
> > relevant code:
>
> > Helper method to create a service:
>
> > + (GDataServiceGoogleContact *)gDataContactService {
>
> > static GDataServiceGoogleContact* service = nil;
>
> > if (!service) {
> > service = [[GDataServiceGoogleContact alloc] init];
>
> > [service setUserAgent:@"FBA.net-ContactSync"];
> > [service setShouldCacheDatedData:YES];
> > [service setServiceShouldFollowNextLinks:YES];
> > }
>
> > UserSettings* userSettings = [StaticDB getCurrentUserSettings];
>
> > // update the username/password each time the service is requested
> > [service setUserCredentialsWithUsername:[userSettings email]
> >
> > password:[userSettings password]];
> > [service setCaptchaToken:NULL captchaAnswer:NULL];
>
> > [service setShouldServiceFeedsIgnoreUnknowns:YES];
>
> > return service;
>
> > }
>
> > Main fetch method:
>
> > - (void)fetchContacts:(GDataDateTime*)gMailServerTime {
> > [UIApplication sharedApplication].networkActivityIndicatorVisible =
> > TRUE;
>
> > lblStatus.text = NSLocalizedString
> > (@"SyncViewController1_DownloadingGmailContacts", @"");
> > [self setContactFeed:NULL];
>
> > GDataServiceGoogleContact *service = [ContactHelper
> > gDataContactService];
> > GDataServiceTicket *ticket;
>
> > // request a whole buncha contacts; our service object is set to
> > // follow next links as well in case there are more than
> > kFBAGDataQueryMaxResults
> > NSURL *feedURL = [NSURL
> > URLWithString:kGDataGoogleContactDefaultFullFeed];
>
> > GDataQueryContact *query = [GDataQueryContact
> > contactQueryWithFeedURL:feedURL];
> > [query setMaxResults:kFBAGDataQueryMaxResults];
>
> > NSDate* updatedMinTime = NULL;
>
> > if ( [mCurrentUserSettings googleNextFeedTimeToFetchFrom] ) {
> > updatedMinTime = [mCurrentUserSettings
> > googleNextFeedTimeToFetchFrom];
> > } else {
> > updatedMinTime = [[mCurrentUserSettings
> > googleLastProcessedFeedTime]
> > addTimeInterval:-180];
> > }
>
> > if ( gMailServerTime && updatedMinTime &&
> > [[gMailServerTime date]
> > timeIntervalSinceDate:updatedMinTime] <
> > kFBAMaximumSecondsBetweenSyncsForLastModified ) {
> > [query setShouldShowDeleted:TRUE];
>
> > [query setUpdatedMinDateTime:[GDataDateTime
> > dateTimeWithDate:updatedMinTime timeZone:[NSTimeZone
> > timeZoneWithName:@"Universal"]]];
> > mIsProcessingAllGmailContacts = FALSE;
> > } else {
> > [query setShouldShowDeleted:FALSE];
> > mIsProcessingAllGmailContacts = TRUE;
> > }
>
> > ticket = [service fetchContactQuery:query
> > delegate:self
> > didFinishSelector:@selector
> > (contactsFetchTicket:finishedWithFeed:)
> > didFailSelector:@selector
> > (contactsFetchTicket:failedWithError:)];
>
> > }
>
> > If you need to see any other method calls, let me know. But it seems
> > almost like 2700 is a cap of some kind being hit on the number of
> > contacts return. We have max results set to 100 with the service set
> > to follow next links, so as I understand it, it should handle all the
> > contacts..
>
> > Thanks,
> > Jason
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Contacts API" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/google-contacts-api?hl=en
-~----------~----~----~----~------~----~------~--~---