Thanks, Jeff, I'm knew to Google APIs, so sorry if I ask stupid questions :)
So, now I figured out the URL for my album, via the PicasaEntry.Id.Uri property, and I want to get the photos like this: PhotoQuery query = new PhotoQuery(@" http://picasaweb.google.com/data/entry/api/user/lev.danielyan/albumid/5266204259381588177 "); PicasaFeed feed = (PicasaFeed)m_service.Query(query); foreach (PicasaEntry entry in feed.Entries) { listBox2.Items.Add(entry.Title.Text); } There is only one entry in the Feed entries, and it just represents the album itself, but not the pics in it. What am I doing wrong? Lev On Tue, Dec 9, 2008 at 11:19 PM, Jeff Fisher (Google) < [EMAIL PROTECTED]> wrote: > > Hi Lev, > > The trick here is to not use the album names when retrieving the feed. > The album names in the feed URLs are "canonical" and hence don't match > 1:1 with the actual name, especially when characters that are not > valid in a URL are used. The workaround is the use the albumid (found > inside of <gphoto:id> when listing a feed of albums) instead. > > The downside to this is you can't use the handy "CreatePicasaUri" > method because it assumes (wrongly) that you are using an album name > instead of an ID. > > So what I'd do if I were you is first retrieve the list of albums for > yourself: > > http://picasaweb.google.com/data/feed/api/user/default > > Find the album you want by it's <title> and then use the value of its > <gphoto:id> to retrieve the album directly: > > > http://code.google.com/apis/picasaweb/developers_guide_protocol.html#ListAlbumPhotos > > This link is also found in the album entry with rel='http:// > schemas.google.com/g/2005#feed'. > > I filed a bug against the .NET client to take in the AlbumID instead > in future versions: > > http://code.google.com/p/google-gdata/issues/detail?id=194 > > Cheers, > -Jeff > > > On Dec 9, 10:03 am, Lev Danielyan <[EMAIL PROTECTED]> wrote: > > Hi, guys, > > > > I want to access my picasa albums with .Net C# code. If the album name > > contains no spaces or is in plain English, everything works fine. > > > > But in my case I have e.g. two albums named "Sep 14" and > > "Лена" (unicode russian), so I try to get the photos out of them: > > > > PhotoQuery query = new PhotoQuery(AlbumQuery.CreatePicasaUri(m_uname, > > "Sep 14")); > > and > > PhotoQuery query = new PhotoQuery(AlbumQuery.CreatePicasaUri(m_uname, > > "Лена")); > > > > In both cases I get a GDataRequestException with "The remote server > > returned an error: (404) Not Found." error. > > > > Some further research and debugging showed up the following problems, > > The album name is being passed to > > Google.GData.Client.Utilities.UriEncodeUnsafe static method, which > > eventually calls Uri.HexEscape method for URI unsafe character, so > > > > 1. In case of "Sep 14" album name, I get "Sep%2014" safe string, when > > I tried to got to "http://picasaweb.google.com/data/feed/api/user/ > > lev.danielyan/album/Sep%2014?kind=photo" in chrome, I got an error, > > experimentally I figured out that the URL should be "http:// > > picasaweb.google.com/data/feed/api/user/lev.danielyan/album/Sep14? > > kind=photo", with NO space in it. > > > > 2. In case of "Лена" album name, I get the same string, which is > > considered to be safe, but again "http://picasaweb.google.com/data/ > > feed/api/user/lev.danielyan/album/Лена?kind=photo" gives a 404, and > > again, experimentally I figured out that the URL should be "http:// > > picasaweb.google.com/data/feed/api/user/lev.danielyan/album/rOaALF? > > kind=photo", which actually doesn't make sense to me at all. > > > > The full code snippet is: > > > > PicasaService m_service = new PicasaService("mytestpicasaapp"); > > m_service.Credentials = new Google.GData.Client.GDataCredentials > > (m_uname, m_pass); > > PhotoQuery query = new PhotoQuery(AlbumQuery.CreatePicasaUri(m_uname, > > "Sep 14")); > > //PhotoQuery query = new PhotoQuery(AlbumQuery.CreatePicasaUri > > (m_uname, "Лена")); > > PicasaFeed feed = (PicasaFeed)m_service.Query(query); > > > > Please help, I'm totally lost here. > > > > Thanks in advance, > > Lev > > > -- Best Regards, Lev Danielyan Phone (cell.): +374 93 975557 Phone (work): +374 10 591829 Phone (home): +374 10 566701 http://www.linkedin.com/in/levdanielyan --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Picasa Web Albums 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-Picasa-Data-API?hl=en -~----------~----~----~----~------~----~------~--~---
