2012-03-30 21 views
0

我在查询Picasa图库,当我深入查看返回的条目时,找不到完整大小的图像。我只能看到一个更小,重新大小的图像(data[0].Content.AbsoluteUri)。我知道Google保留了全尺寸图片,因为我可以在线查看我的Picasa图库时看到它。全尺寸图像在哪里?GData.Photos查询全尺寸图像在哪里?

var picasaService = new PicasaService("Gallery"); 

var photoQuery = new PhotoQuery(PicasaQuery.CreatePicasaUri("GOOGLEUSERNAME", "GALLERYID")); 
var photoFeed = picasaService.Query(photoQuery); 

var data = photoFeed.Entries; 

回答

1

简短的回答:

媒体:组/媒体:内容[@url]在查询得到通过Picasa的GData服务GDATA照片ENTRY路径中包含你想要的链接。

较长的答案:

  1. 使用OAuth操场交互查询GDATA API的Picasa \
  2. https://code.google.com/oauthplayground并从列表中选择Picasa和获得
  3. 授权按钮......然后允许访问按钮并且您可以使用表格
  4. 查询所需照片的ENTRY URI(您的...用户/ ../albumid ../photoid)
  5. 检查的媒体内容:组/媒体:内容[@url]样品下面
  6. 的URI到大照片是的valueOf在上述表达式中的URL属性
  7. 为我Picasa相片
  8. 一个采样值
  9. URL = HTTPS://lh3.googleusercontent.com/-_FFMNGPU1TQ/TtukXyN4eCI/AAAAAAAACso/EzPmut2iKVQ/DSC01612.JPG

使用一个查询的OAuth 2.0操场让我的一张照片的进入.. 。

Request: 
GET /data/entry/api/user/rowntreerob/albumid/5682316071017984417/photoid/5682316083381958690?alt=json 

注:使用http://json.parser.online.fr/

Response: 

"media$group":{ 
"media$content":[ 
{ 
"url":"https://lh3.googleusercontent.com/-_FFMNGPU1TQ/TtukXyN4eCI/AAAAAAAACso/EzPmut2iKVQ/DSC01612.JPG", 
"height":512, 
"width":341, 
"type":"image/jpeg", 
"medium":"image" 
} 

的链接大照片要在URL属性上面...

使用“域=”标签滤波器响应,您可以直接获得链接从下面GDATA REQ /防尘面具

GET /data/entry/api/user/rowntreerob/albumid/5682316071017984417/photoid/5682316083381958690?alt=json&fields=media%3Agroup%2Fmedia%3Acontent%5B%40url%5D 

{ 
"version":"1.0", 
"encoding":"UTF-8", 
"entry":{ 
"xmlns":"http://www.w3.org/2005/Atom", 
"xmlns$media":"http://search.yahoo.com/mrss/", 
"media$group":{ 
"media$content":[ 
{ 
"url":"https://lh3.googleusercontent.com/-_FFMNGPU1TQ/TtukXyN4eCI/AAAAAAAACso/EzPmut2iKVQ/DSC01612.JPG", 
"height":512, 
"width":341, 
"type":"image/jpeg", 
"medium":"image" 
} 
] 
} 
} 
} 
4

文档中隐藏它可以指定在饲料中的图像的大小。这是使用“imgmax”参数:

https://developers.google.com/picasa-web/docs/2.0/reference#Parameters

它可以有一个值设置为“d”,要求全尺寸图像

这不是C#API的直接支持,但你可以使用PhotoQuery对象上的“extraParameters”字段实现所需的结果。然后

您的代码就变成了:

var picasaService = new PicasaService("Gallery"); 

var photoQuery = new PhotoQuery(PicasaQuery.CreatePicasaUri("GOOGLEUSERNAME", "GALLERYID")); 
// add the extra parameter to request full size images 
photoQuery.ExtraParameters = "imgmax=d"; 

var photoFeed = picasaService.Query(photoQuery); 

var data = photoFeed.Entries;