0

我正在尝试将所有照片集的名称添加到列表框中。我有令牌和有效的 Flickr 对象。我如何在 c# 中执行此操作。在标准的 Flikr API

flickr.photosets.getList

已使用,但我如何在 .net 中实现这一点

4

1 回答 1

1

这里撕下来

C# 中的 Flickr 库

最近几天,我一直在研究一个示例 C# 库,以使用 Flickr 自己的 API 访问 Flickr 图片。这个库是一个轻量级的 C# 类,它提供了两个基本功能:(1) 检索您帐户中的照片集列表和 (2) 检索有关照片集中照片的信息。

使用这个类,您可以检索您的 Flickr 帐户中的照片集,并将它们显示在一个组合框中,其中包含如下几行代码:

        Flickr flickr = new Flickr("YourApiKey", "YourUserID");

        List<PhotoSetInfo > photosets = flickr.GetPhotoSets(); 

        cboPhotoSets.DataSource = photosets;

        cboPhotoSets.DataTextField = "Title";

        cboPhotoSets.DataValueField = "PhotoSetID";

        cboPhotoSets.DataBind();

选择照片集后,您可以使用以下代码检索有关其中照片的信息(如标题和 URL)。在此示例中,我将照片列表绑定到 ASP.NET datalist 控件以显示它们:

        Flickr flickr = new Flickr("YourApiKey", "YourUserID");

        List<PhotoInfo> photos = flickr.GetPhotosInSet(cboPhotoSets.SelectedValue);

        listPhotos.DataSource = photos;

        listPhotos.DataBind();

        lblPhotosMsg.Text = (photos.Count == 0) ? "No photos in this photoset" : "";

Flickr API 支持多种请求和响应格式。我在我的 FlickrLib 库中使用 REST 格式来处理请求和响应。一个典型的 Flickr REST 请求如下所示:

http://api.flickr.com/services/rest/?method=methodName¶meter1=value1¶meter2=value2

其中 methodName 是要调用的方法的名称,例如 flickr.photosets.getList 返回照片集列表。

Flickr 提供的 REST 响应是带有请求相关信息的 XML 文档。对于 flickr.photosets.getList 方法,响应将是一个带有 photoset 节点和几个 photoset 子节点的 XML 文档。这些 XML 响应很容易使用 LINQ to XML 进行解析,并将它们转换为 C# 强类型对象(如 PhotoSetInfo 和 PhotoInfo),然后可以将其绑定到 .NET 类。这正是 FlickrLib 库所做的,它为 Flickr API 功能提供了一个包装器,以便您可以轻松地从您的 .NET 应用程序中使用它。

参考

您可以从http://hectorcorrea.com/downloads/FlickrLibDemo.zip下载此类的 C# 源代码

有关 Flick API 的信息,请访问http://www.flickr.com/services/api/那里有很多关于 API 提供什么以及如何使用它的信息。API 提供了大量的 Flickr 功能,您可能会觉得这些功能很有用,而我的小课堂并未公开这些功能。

您需要从 Flickr 获取 API 密钥才能通过此类或任何其他类使用他们的 API。API 密钥是免费的,但它是必需的,以便 Flickr 可以防止单个用户向其站点提交过多请求并将其删除。

发表于 2008 年 11 月 30 日下午 12:27:00 永久链接

于 2012-04-11T11:49:25.357 回答