面向 Google、YouTube、Facebook 以及其他 Web 2.0 API 的 C# 和 VB.NET 类库

阅读数:278 2008 年 4 月 8 日

话题:.NETC#语言 & 开发架构

在 Scott Hanselman 博客最近发表的一篇文章中,Scott 编辑了一系列.NET 类库,这些类库有助于开发人员面向那些互联网上著名的 Web 2.0 API 进行开发。

Digg

Digg 的 API 使用 REST 形式的接口,并且通过 XML 进行通信。DiggApiNet是 Digg API 的一个.NET 封装。CodeProject 还包括另一个可用的 API 封装Digg API.NET。在 Hanselman 提供的如下示例中,从一个特定的 URL 中创建和加载了一个 XmlDocument 对象,然后将 XML 节点复制到 Digg 的特定对象中。

private const string get_popular = "http://services.digg.com/stories/popular/comments/{0}";

public DiggComments GetPopular()



{

return GetPopular(new Hashtable());

}

public DiggComments GetPopular(Hashtable args)

{

string uri = String.Format(get_popular, HttpBuildUrl(args));

return new DiggComments(Request(uri));

}

public DiggComments(XmlDocument xml_doc) : base(xml_doc, "events")

{

_comments = new List();

if (xml_doc.SelectSingleNode("events") == null

|| xml_doc.SelectSingleNode("events").SelectNodes("comment") == null) {

throw new DiggApiException("XML response appears to be malformed, or contains unexpected data.");

}

foreach (XmlNode node in xml_doc.SelectSingleNode("events").SelectNodes("comment")) {

_comments.Add(new DiggComment(node));

}

}

Facebook

Fackbook 提供了一个复杂的 API,目前已经可以获得足够多的.NET 支持。CodePlex 托管了两个相关的项目:一个是Facebook.NET,它提供了一套用于开发 Facebook 应用程序以及访问 Fackbook API 的.NET 类库;另一个则是Facebook Developer Toolkit,最初由Clarity Consulting Inc.开发。Jay Lagorio 为 VB.NET 编写了一个 Facebook 的 API封装,而fbasync则是一个面向 Fackbook 异步 API 的 CodePlex 项目。

Google and YouTube

Google 的 API“GData” 是一套全面的类库,使用了 XML 并基于 HTTP 协议实现通信。GData 为 YouTube、Blogger、Google Calendar、Notebook、Spreadsheets、Documents、Picassa 等提供支持。Google 为.NET 开发人员提供了 一个封装,以便于他们快捷地读写 GData 内容。以下示例撷取自 Google 提供的.NET 开发人员指南

AtomEntry newPost = new AtomEntry();

newPost.Title.Text = "Marriage!";

newPost.Content = new AtomContent();

newPost.Content.Content = "<div xmlns='http://www.w3.org/1999/xhtml'>" +

"<p>Mr. Darcy has <em>proposed marriage</em> to me!</p>" +

"<p>He is the last man on earth I would ever desire to marry.</p>" +

"<p>Whatever shall I do?</p>" +

"</div>";

newPost.Content.Type = "xhtml";

newPost.Authors.Add(new AtomPerson());

newPost.Authors[0].Name = "Elizabeth Bennet";

newPost.Authors[0].Email = "liz@gmail.com";

AtomEntry createdEntry = service.Insert("http://www.blogger.com/feeds/" + blogId + "/posts/default", newPost);

如果您想了解更多有关各种 Web 2.0 服务的类库,从 Scott Hanselman 的文章出发会是一个不错的选择。

查看英文原文:C# and VB .NET Libraries to Google, YouTube, Facebook, and other Web 2.0 APIs