2011-07-19 64 views
0

我希望有人能幫我解決這個問題。我正嘗試從我的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

回答

0

如果服務器顯示「請求的結果太多」,這是最大結果查詢參數太大的線索。

代碼片段中的提取沒有顯示功能。 kGDataGooglePhotosKindAlbum和專輯的alternateLink都不會成爲Feed的網址。

+0

您對我可以使用什麼有什麼建議嗎?因爲我嘗試過改變一切,並沒有很幸運 – MZimmerman6