【问题标题】:GData Picasa Photo Album iPhoneGData Picasa 相册 iPhone
【发布时间】:2011-10-08 17:27:30
【问题描述】:

我希望有人可以帮助我解决这个问题。我正在尝试从我的 iphone 应用程序访问 Picasa 网络相册。我之前曾将 GData 与 Google 日历一起使用并获取事件以及与它们相关的数据,因此我以类似的方式设置了我的方法。但是,我收到一个错误,告诉我以下内容

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

我认为我已经缩小了与我正在使用的 ticket 相关的问题,在以下行中

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]]);
}

提前感谢您提供的任何信息或帮助。

【问题讨论】:

  • 我仍然无法从相册中获取照片内容以及所有这些内容,但由于请求过多,我确实解决了整个问题。事实证明,我使用的 url 正在访问全球 Picasa 上存在的所有提要。所以这可以解释太多结果的事情。我能够做的是使用不同的方法来获取一个 url,我在搜索 NSURL *feedURL = [GDataServiceGooglePhotos photoFeedURLForUserID:@"username" albumID:nil albumName:@"album name" photoID:nil kind:nil访问:无];

标签: iphone objective-c gdata-api picasa


【解决方案1】:

如果服务器显示“请求的结果太多”,则表明最大结果查询参数太大。

代码 sn-p 中的提取似乎不起作用。 kGDataGooglePhotosKindAlbum 和相册的备用链接都不是供稿的 URL。

【讨论】:

  • 你对我可以改用什么有什么建议吗,因为我已经尝试过改变一切,但运气不太好
猜你喜欢
  • 2011-04-22
  • 2013-07-19
  • 1970-01-01
  • 2014-02-08
  • 1970-01-01
  • 2011-05-18
  • 1970-01-01
  • 2011-04-26
  • 2015-08-09
相关资源
最近更新 更多