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
-~----------~----~----~----~------~----~------~--~---

Reply via email to