feedsky logo

  Feed互动开发指导

   

简介

  通过Feed互动API任何人都可以扩展我们的Feed互动服务。为你的Feed添加有趣的、个性化的功能。
  该文档将介绍如果通过定制的XML来创建新的Feed互动功能。当然,开发者也可以通过各种服务器端开发语言(例如:Perl, PHP, Java/JSP, ASP, Ruby等)来动态创建。


FeedSky API 样例

  Feed互动文件是一个XML文档(默认使用UTF-8编码)。该文件定义了FeedSky应该在Feed中如何显示Feed互动。
  Feed互动文件包括两个部分,其中一个是“Catalog”。它主要包含该Feed互动文件的标题和介绍。
  另一个部分定义了生成Feed互动的规则信息。该信息分为两种情况:
  第一种是静态的Feed互动(在Feed互动文件中的元素定义)。这种情况中Feed互动显示的文字或图片不会动态改变,例如:发信给作者。
  第二种是动态的Feed互动(在Feed互动文件中的元素定义)。这种情况中Feed互动显示的文字或图片将根据item数据动态改变,例如:有3条评论。


Feed互动文件的例子

1. 例子一:欢迎光临!
  首先我们来创建一个最简单的Feed互动,在Feed中显示“欢迎光临!”。下面是Feed互动文件的代码:

<FeedFlareUnit>
   <Catalog>
       <Title>欢迎光临!</Title>
       <Description>静态Feed互动,显示文字“欢迎光临!”</Description>
   </Catalog>
   <FeedFlare>
   <Text>欢迎光临!</Text>
   </FeedFlare>
</FeedFlareUnit>

  创建这个Feed互动文件,首先要创建这个xml文件,并把它放到FeedSky服务器可以访问到的地方。
  发布者可以登录FeedSky网站,选择要发布Feed互动的feed,点击Feed优化中的Feed互动。在“添加Feed互动爱好者开发的功能”中添加Feed互动文件的访问地址。保存后,你就可以在feed中看到“欢迎光临!”出现在feed中的每一个item下面。

2. 例子二:
  查看相关网页,下面我们将加入一些动态的信息。在Feed中显示查看Google中相关网页的链接。下面是Feed互动文件的代码:

<FeedFlareUnit>
  <Catalog>
     <Title>查看Google中的相关页面</Title>
     <Description>静态Feed互动,
          链接到Google中显示和当前item类似的网页</Description>
  </Catalog>
  <FeedFlare>
     <Text>查看相关网页</Text>
     <Link href="http://www.google.com/search?as_rq=${link}"/>
   </FeedFlare>
</FeedFlareUnit>

在这个例子中为了获取item的link地址使用了${link}来获得。目前系统还支持${title}和${feedUrl},分别是获得item的title和feed的url地址。

3. 例子三:
  最后我们来编写一个动态Feed互动,实现查看item在del.icio.us的收藏次数和tag的功能。下面是Feed互动文件的代码:

<FeedFlareUnit>
  <Catalog>
     <Title>del.icio.us收藏</Title>
     <Description>
      查看文章在del.icio.us被收藏的次数和tag
     </Description>
  </Catalog>
  <DynamicFlare href="http://www.feedsky.com/
  widgets/del.icio.us/getURLTags.php?title=${title}&url=${link}"/>
  <SampleFlare>
    <Text>共被收藏224次;使用最多的3个Tag是:blog,it,blogger</Text>
  </SampleFlare>
</FeedFlareUnit>

  动态Feed互动返回的信息:

<FeedFlare>
  <Text>共被收藏225次;使用最多的3个Tag是:blog,it,blogger</Text>
  <Link href="http://del.icio.us/url/1aca726e06cc0303832e2d23c26e4af0"/>
</FeedFlare>

<FeedFlareUnit>
   <Catalog>
      <Title>Hello World 1</Title>
      <Description>
 A static FeedFlare unit  that just shows the text "Hello, World"
      </Description>
   </Catalog>
   <FeedFlare>
   <Text>Hello, World</Text>
   </FeedFlare>
</FeedFlareUnit>

Feed互动DTD

Feed互动文件DTD
<!ELEMENT FeedFlareUnit (Catalog,
 ((FeedFlare,SampleFlare?) | (DynamicFlare,SampleFlare)))>
<!ELEMENT Catalog (Title, Description, Link?, Author?)>
<!ELEMENT Title (#PCDATA)>
<!ELEMENT Description (#PCDATA)>
<!ELEMENT Link EMPTY>
<!ATTLIST Link href CDATA #REQUIRED>
<!ELEMENT Author (#PCDATA)>
<!ATTLIST Author email CDATA #IMPLIED>
<!ELEMENT FeedFlare (Text?, Image?, Link?)>
<!ELEMENT Text (#PCDATA)>
<!ELEMENT Image EMPTY>
<!ATTLIST Image src CDATA #REQUIRED>
<!ELEMENT DynamicFlare EMPTY>
<!ATTLIST DynamicFlare href CDATA #REQUIRED>
<!ATTLIST DynamicFlare method CDATA #IMPLIED>
<!ELEMENT SampleFlare (Text?, Image?)>
动态Feed互动返回信息DTD
<!ELEMENT FeedFlare (Text?, Image?, Link?)>
<!ELEMENT Text (#PCDATA)>
<!ELEMENT Image EMPTY>
<!ATTLIST Image src CDATA #REQUIRED>
<!ELEMENT Link EMPTY>
<!ATTLIST Link href CDATA #REQUIRED>