GData Picasa相册iPhone

问题描述:

我希望有人能帮我解决这个问题。我正尝试从我的iPhone应用程序访问Picasa网络相册。我以前在Google Calendar中使用过GData,并且事先获取了与之相关的事件和数据,因此我以类似的方式设置了我的方法。然而,我正在逐渐被告诉我的错误以下GData Picasa相册iPhone

serviceBase:<GDataServiceGooglePhotos: 0x4d4e6d0> objectFetcher:<GDataHTTPFetcher: 0xbaa35c0> failedWithStatus:400 data:Too many results requested 

我想我已经缩小下来,我有事做与,我使用,在下面的问题line

ticket = [service fetchFeedWithURL:[NSURL URLWithString:kGDataGooglePhotosAllFeed] 
          delegate:self 
       didFinishSelector:@selector(photosListTicket:finishedWithFeed:error:)]; 

但是我无法克服这个问题。有没有人有建议来解决这个问题。难道我做错了什么?

我的检索图片的完整代码如下所示。任何说picAlbum的地方,这是一个预定义的NSArray来保存信息。

- (GDataServiceGooglePhotos *)photoService { 

    static GDataServiceGooglePhotos* service = nil; 
    if (!service) { 
     service = [[GDataServiceGooglePhotos alloc] init]; 
     [service setShouldCacheDatedData:YES]; 
     [service setServiceShouldFollowNextLinks:YES]; 
    } 

    [service setUserCredentialsWithUsername:@"username" 
            password:@"password"]; 
    return service; 
} 


-(void)loadGooglePhotos { 
    [self fetchAllPhotos]; 
} 

-(void)fetchAllPhotos { 
    NSLog(@"In fetchAllPhotos"); 
    GDataServiceGooglePhotos *service = [self photoService]; 
    GDataServiceTicket *ticket; 

    ticket = [service fetchFeedWithURL:[NSURL URLWithString:kGDataGooglePhotosKindAlbum] 
           delegate:self 
        didFinishSelector:@selector(photosListTicket:finishedWithFeed:error:)]; 
} 

- (void)photosListTicket:(GDataServiceTicket *)ticket finishedWithFeed:(GDataFeedPhotoAlbum *)feed error:(NSError *)error { 

    NSLog(@"In photosListTicket"); 
    NSArray *photos = [feed entries]; 
    if ([photos count] != 0){ 
     self.picAlbum = [photos objectAtIndex:0]; 
     NSLog(@"fetching photos"); 
     [self fetchPhotos]; 
    } 
    else { 
     NSLog(@"User has no photos..."); 
    } 
} 

- (void)fetchPhotos { 

    NSLog(@"In fetchPhotos"); 
    if (self.picAlbum) { 
     NSURL *feedURL = [[self.picAlbum alternateLink] URL]; 
     if (feedURL) { 
      NSLog(feedURL); 
      GDataQueryGooglePhotos *query = [GDataQueryGooglePhotos photoQueryWithFeedURL:feedURL]; 
      [query setMaxResults:1000]; 
      GDataServiceGooglePhotos *service = [self photoService]; 
      GDataServiceTicket *ticket; 
      ticket = [service fetchFeedWithQuery:query delegate:self didFinishSelector:@selector(photosEventsTicket:finishedWithFeed:error:)]; 
     } 
    } 
} 

- (void)photosEventsTicket:(GDataServiceTicket *)ticket finishedWithFeed:(GDataFeedPhotoAlbum *)feed error:(NSError *)error { 

    NSLog(@"In photosEventsTicket"); 
    NSArray *photos = [feed entries]; 
    NSLog([NSString stringWithFormat:@"%i",[photos count]]); 
} 

预先感谢任何信息或帮助,您可以提供。

+0

我仍然无法从相册中获取照片内容和所有内容,但我确实通过太多的请求来解决整个问题。事实证明,我使用的网址是访问全球Picasa上的所有提要。所以这会解释太多的结果。我能够做的是使用不同的方法来获得一个网址,我发现后经过一番搜索 NSURL * feedURL = [GDataServiceGooglePhotos photoFeedURLForUserID:@“username”albumID:nil albumName:@“album name”photoID:nil kind :无存取:无]; – MZimmerman6

如果服务器显示“请求的结果太多”,这是最大结果查询参数太大的线索。

代码片段中的提取没有显示功能。 kGDataGooglePhotosKindAlbum和专辑的alternateLink都不会成为Feed的网址。

+0

您对我可以使用什么有什么建议吗?因为我尝试过改变一切,并没有很幸运 – MZimmerman6